home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Applications / Eudora 1.3.1 / Eudora Q&A / cards.xml < prev    next >
Encoding:
Text File  |  1993-03-16  |  141.0 KB  |  2,028 lines

  1. card_9952.xml
  2. <?xml version="1.0" encoding="utf-8" ?>
  3. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  4. <card>
  5.     <id>9952</id>
  6.     <filler1>0</filler1>
  7.     <cantDelete> <false /> </cantDelete>
  8.     <showPict> <true /> </showPict>
  9.     <dontSearch> <false /> </dontSearch>
  10.     <owner>2620</owner>
  11.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  12.     <part>
  13.         <id>1</id>
  14.         <type>field</type>
  15.         <visible> <true /> </visible>
  16.         <dontWrap> <false /> </dontWrap>
  17.         <dontSearch> <false /> </dontSearch>
  18.         <sharedText> <false /> </sharedText>
  19.         <fixedLineHeight> <false /> </fixedLineHeight>
  20.         <autoTab> <false /> </autoTab>
  21.         <lockText> <true /> </lockText>
  22.         <rect>
  23.             <left>72</left>
  24.             <top>85</top>
  25.             <right>493</right>
  26.             <bottom>293</bottom>
  27.         </rect>
  28.         <style>scrolling</style>
  29.         <autoSelect> <false /> </autoSelect>
  30.         <showLines> <false /> </showLines>
  31.         <wideMargins> <false /> </wideMargins>
  32.         <multipleLines> <false /> </multipleLines>
  33.         <reservedFamily> 0 </reservedFamily>
  34.         <titleWidth>0</titleWidth>
  35.         <icon>0</icon>
  36.         <textAlign>left</textAlign>
  37.         <font>Geneva</font>
  38.         <textSize>12</textSize>
  39.         <textStyle>plain</textStyle>
  40.         <textHeight>16</textHeight>
  41.         <name>Index</name>
  42.         <script>on mouseUp
  43. if the optionkey is up then
  44. get word 2 of the clickline
  45. go card it
  46. else
  47. put empty into idx
  48. repeat with c=1 to the number of cards
  49. go card c
  50. put "‚Ä¢" & line 1 of bg field "Question" & return after idx
  51. end repeat
  52. go card 1
  53. put idx into cd field "Index"
  54. end if
  55. end mouseUp</script>
  56.     </part>
  57.     <content>
  58.         <layer>background</layer>
  59.         <id>2</id>
  60.         <text>Index</text>
  61.     </content>
  62.     <content>
  63.         <layer>card</layer>
  64.         <id>1</id>
  65.         <text>‚Ä¢Index
  66. ‚Ä¢Why does this stack exist?
  67. ‚Ä¢Where can I get the latest version of Eudora and documentation?
  68. ‚Ä¢So, what the heck is the deal with Eudora?  Is it freeware, shareware, or what?  Who owns it, UIUC or Qualcomm?
  69. ‚Ä¢So, what's in it for Qualcomm?
  70. ‚Ä¢What about PC users?  Is there a Eudora for them?
  71. ‚Ä¢Where does Eudora keep my mail?  How can multiple users share one Macintosh and both use Eudora?
  72. ‚Ä¢Can I keep Eudora from putting mail in the System folder?
  73. ‚Ä¢How big is "big"?
  74. ‚Ä¢Why the name, "Eudora"?
  75. ‚Ä¢My correspondents are complaining that lines in the messages I send them are broken in funny places.  How can I make Eudora send better-looking messages?
  76. ‚Ä¢Can I keep my mail on a floppy?
  77. ‚Ä¢Can I keep my mail somewhere besides the system folder of my hard disk?
  78. ‚Ä¢Can two or more people share one Macintosh for their mail?
  79. ‚Ä¢How come it lets me set my return address; isn't that a security problem?
  80. ‚Ä¢My mailer insists on having a Date: header in my mail; can Eudora make one?
  81. ‚Ä¢What's the difference between a POP account and an SMTP server?
  82. ‚Ä¢I have an "alias" list on UNIX.  Do I have to type all that back in?
  83. ‚Ä¢I have a LOT of stored mail on UNIX.  Can I get that into Eudora?
  84. ‚Ä¢Can I get mail and nicknames out of Eudora and back to UNIX?
  85. ‚Ä¢I have an ancient FastPath, and MacTCP doesn't seem to work.  What do I do?
  86. ‚Ä¢I don't think Eudora has enough settings; I want to tune, tweak, and in general find havoc to wreak.
  87. ‚Ä¢Where does Eudora keep my preferences?
  88. ‚Ä¢Is there anything I should know about customizing Eudora with ResEdit?
  89. ‚Ä¢I want to move around in Messages without using the mouse, but I don't have an extended keyboard.  Are there any shortcuts?
  90. ‚Ä¢What's ph?
  91. ‚Ä¢What other phone books are available?
  92. ‚Ä¢How can I add headers that don't appear in outgoing mail windows to mail I send?
  93. ‚Ä¢Will Eudora work with UUPC?
  94. ‚Ä¢I sure wish Eudora's windows didn't cover the disk icons and the trash.  Is there anything I can do?
  95. ‚Ä¢My POP server says "-ERR Maildrop lock busy" or somesuch crud.  What do I do?
  96. ‚Ä¢I'm trying to use Serial Eudora, and I keep getting "Serial Port in Use", even after I quit Eudora.
  97. ‚Ä¢I'm trying to use Serial Eudora I can receive mail ok, but when I send it I get "Command unrecognized."
  98. ‚Ä¢I'm trying to use Serial Eudora, and everything works except attachments; I usually get "Attachment corrupted; it was too short."
  99. ‚Ä¢I don't have any domain name servers.  What do I do?
  100. ‚Ä¢What's SLIP?
  101. ‚Ä¢When I try to check mail, it says "Connection came up halfway then failed."
  102. ‚Ä¢My messages keep showing up without any headers.  I see ???@???, and I can't reply.  The mail looks fine on the server.
  103. ‚Ä¢I have some mail in emacs/techmail/babyl format.  Can I convert it to Eudora?
  104. ‚Ä¢I have some mail in QuickMail format.  Can I convert it?
  105. ‚Ä¢Can I change the size at which Eudora splits messages?  Why does Eudora split messages?  How can I put split messages back together?
  106. ‚Ä¢When I reply to a message, Eudora puts an "R" in the left column of the message summary.  But if I delete the reply before I send it, the "R" stays.  Is this a bug?
  107. ‚Ä¢Where can I find a server for Eudora's "Change Password" menu item?
  108. ‚Ä¢The mail transport system around here puts a lot of stupid junk in mail headers.  Can I make Eudora filter it out?
  109. ‚Ä¢I don't seem to get as much feedback from Communications Tools when I use Eudora as I do from other programs.  What gives?
  110. ‚Ä¢What the heck is "X-Sender" and "(Unverified)" and how can I make them go away?
  111. </text>
  112.     </content>
  113.     <name></name>
  114.     <script>on opencard
  115. hide bg button "cd1"
  116. end opencard
  117. on closecard
  118. show bg button "cd1"
  119. end closecard</script>
  120. </card>
  121.  
  122.  
  123. card_7028.xml
  124. <?xml version="1.0" encoding="utf-8" ?>
  125. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  126. <card>
  127.     <id>7028</id>
  128.     <filler1>0</filler1>
  129.     <cantDelete> <false /> </cantDelete>
  130.     <showPict> <true /> </showPict>
  131.     <dontSearch> <false /> </dontSearch>
  132.     <owner>2620</owner>
  133.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  134.     <content>
  135.         <layer>background</layer>
  136.         <id>2</id>
  137.         <text>Why does this stack exist?</text>
  138.     </content>
  139.     <content>
  140.         <layer>background</layer>
  141.         <id>3</id>
  142.         <text>We put stuff in this stack that just doesn't fit in the manual, either because it's too arcane or because it's too embarassing.
  143.  
  144. If you have questions about Eudora that the manual, Eudora's balloon help, and this stack don‚Äôt answer, you should seek out information from your local experts who know your network best.   The Q&A stack has lots of information about commonly asked questions and on customizing Eudora to fit a user's personal taste.  The manual contains a complete explanation about Eudora's features and commands, as well as information important to the network administrator.  Not every question they could ask is covered by all these sources of information. 
  145.  
  146. We monitor the UseNet news groups for questions and comments about Eudora.  
  147.  
  148. If you still can't find the answer to your question, or just want to comment on or suggest an enhancement  for Eudora , 
  149.                            write us using
  150. 'eudora-hotline@qualcomm.com' or 'sdorner@qualcomm.com'.
  151.  
  152. </text>
  153.     </content>
  154.     <name></name>
  155.     <script></script>
  156. </card>
  157.  
  158.  
  159. card_9701.xml
  160. <?xml version="1.0" encoding="utf-8" ?>
  161. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  162. <card>
  163.     <id>9701</id>
  164.     <filler1>0</filler1>
  165.     <cantDelete> <false /> </cantDelete>
  166.     <showPict> <true /> </showPict>
  167.     <dontSearch> <false /> </dontSearch>
  168.     <owner>2620</owner>
  169.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  170.     <content>
  171.         <layer>background</layer>
  172.         <id>2</id>
  173.         <text>Where can I get the latest version of Eudora and documentation?</text>
  174.     </content>
  175.     <content>
  176.         <layer>background</layer>
  177.         <id>3</id>
  178.         <text>The best thing to do is send mail to "eudora-info@qualcomm.com"; that will get you The Whole Story on what version is currently available and how to get it.</text>
  179.     </content>
  180.     <name></name>
  181.     <script></script>
  182. </card>
  183.  
  184.  
  185. card_16895.xml
  186. <?xml version="1.0" encoding="utf-8" ?>
  187. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  188. <card>
  189.     <id>16895</id>
  190.     <filler1>0</filler1>
  191.     <cantDelete> <false /> </cantDelete>
  192.     <showPict> <true /> </showPict>
  193.     <dontSearch> <false /> </dontSearch>
  194.     <owner>2620</owner>
  195.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  196.     <content>
  197.         <layer>background</layer>
  198.         <id>2</id>
  199.         <text>So, what the heck is the deal with Eudora?  Is it freeware, shareware, or what?  Who owns it, UIUC or Qualcomm?</text>
  200.     </content>
  201.     <content>
  202.         <layer>background</layer>
  203.         <id>3</id>
  204.         <text>Eudora 1.4 is absolutely free for you to use.  You may redistribute it, provided you do not charge for Eudora, over and above recovering your redistribution costs.  If you do redistribute Eudora, you must not remove any copyright notices.
  205.  
  206. Eudora 2.0 is commercial software, and must be purchased from QUALCOMM.
  207.  
  208. UIUC owns the rights to Eudora as a whole, but has licensed it to QUALCOMM.  Parts of Eudora are copyright UIUC, parts copyright QUALCOMM.</text>
  209.     </content>
  210.     <name></name>
  211.     <script></script>
  212. </card>
  213.  
  214.  
  215. card_17276.xml
  216. <?xml version="1.0" encoding="utf-8" ?>
  217. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  218. <card>
  219.     <id>17276</id>
  220.     <filler1>0</filler1>
  221.     <cantDelete> <false /> </cantDelete>
  222.     <showPict> <true /> </showPict>
  223.     <dontSearch> <false /> </dontSearch>
  224.     <owner>2620</owner>
  225.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  226.     <part>
  227.         <id>1</id>
  228.         <type>field</type>
  229.         <visible> <true /> </visible>
  230.         <dontWrap> <false /> </dontWrap>
  231.         <dontSearch> <false /> </dontSearch>
  232.         <sharedText> <false /> </sharedText>
  233.         <fixedLineHeight> <false /> </fixedLineHeight>
  234.         <autoTab> <false /> </autoTab>
  235.         <lockText> <false /> </lockText>
  236.         <rect>
  237.             <left>72</left>
  238.             <top>86</top>
  239.             <right>493</right>
  240.             <bottom>304</bottom>
  241.         </rect>
  242.         <style>scrolling</style>
  243.         <autoSelect> <false /> </autoSelect>
  244.         <showLines> <false /> </showLines>
  245.         <wideMargins> <false /> </wideMargins>
  246.         <multipleLines> <false /> </multipleLines>
  247.         <reservedFamily> 0 </reservedFamily>
  248.         <titleWidth>0</titleWidth>
  249.         <icon>0</icon>
  250.         <textAlign>left</textAlign>
  251.         <font>Geneva</font>
  252.         <textSize>12</textSize>
  253.         <textStyle>plain</textStyle>
  254.         <textHeight>16</textHeight>
  255.         <name></name>
  256.         <script></script>
  257.     </part>
  258.     <content>
  259.         <layer>background</layer>
  260.         <id>2</id>
  261.         <text>So, what's in it for Qualcomm?</text>
  262.     </content>
  263.     <content>
  264.         <layer>card</layer>
  265.         <id>1</id>
  266.         <text><span class="style1"> hear this question frequently. The answer is, "What's in it for UIUC?"  "What's in it for NCSA?"  "What's in it for Rand?"  All these organizations develop tools for their own use, and
  267. then share them with the Internet community.  Why?
  268.  
  269. 1. Since you're going to do it anyway, why not share it?
  270. 2. Good press.
  271. 3. Hope that other organizations will do the same.
  272.  
  273. Anyway, for those of you who want to know what Qualcomm is, just scroll down (Warning: text written by marketing type follows):
  274. </span><span class="style5">
  275.  
  276. Overview                        
  277. QUALCOMM Incorporated is a leader in digital wireless communications technologies.  The company manufactures, markets, licenses and operates advanced communications systems and products based on digital wireless technology. 
  278.  
  279. QUALCOMM had revenues of $107.5 million in the fiscal year ending September 1992.  Publicly traded since December 1991, its stock trades on the NASDAQ National Market System, symbol: QCOM.
  280.  
  281. FOUNDED 
  282. 1985
  283.  
  284. Employees                       
  285. Over 900 personnel are located at the company's San Diego headquarters and throughout the United States.
  286.  
  287. Products AND TECHNOLOGIES                       
  288.  
  289. OmniTRACS System -- QUALCOMM's principal product is the OmniTRACS system, the most technologically advanced two-way mobile satellite communications and tracking system of its kind in the world. Introduced in late 1988, the OmniTRACS system provides data transmission and position reporting services for over 225 transportation companies and other mobile customers using more than 43,000 OmniTRACS terminals in the United States and Canada. The system also operates in Europe and service is planned to begin in Japan, Mexico and Brazil in 1993.
  290.  
  291. CDMA -- QUALCOMM‚Äôs Code Division Multiple Access (CDMA) is a next-generation technology for digital wireless telephone communications. CDMA improves voice quality and increases capacity by as much as 10 to 20 times over today's FM analog cellular system. CDMA uses spread spectrum technology to break up speech into small, digitized segments and encode them to identify each call. A large number of users can thus share the same band of spectrum and greatly increase system capacity. Commercial deployment of CDMA cellular systems will begin in several U.S. cities in early 1994.  A North American standard based on QUALCOMM's CDMA technology is expected to be adopted by the Spring of 1993 for the rapidly growing cellular telephone industry.
  292.  
  293. Globalstar‚Ñ¢ -- Under development through a joint venture between QUALCOMM and Loral Aerospace Corporation, Globalstar is a low-earth orbit (LEO) satellite-based, cellular-like voice and data service for mobile or fixed applications.  Globalstar will be designed to provide affordable and reliable voice, data, fax and position location services to customers around the globe.
  294.  
  295. VLSI -- Included in the company‚Äôs product offerings are a family of Viterbi and Trellis decoders, Direct Digital Synthesizers (DDS), Phased Locked Loop (PLL) synthesizers and Voltage Controlled Oscillators (VCOs) based on Very Large Scale Integration (VLSI) technology.  
  296.  
  297. Government -- QUALCOMM‚Äôs government products include Data Link Systems for government test and training ranges, and the QM6100 Universal Compatible Modem for Defense Satellite Communications System (DSCS). 
  298.  
  299. HEADQUARTERS
  300. 10555 Sorrento Valley Road
  301. San Diego, California  92121
  302. (619) 587-1121
  303.  
  304. Management              
  305. Dr. Irwin M. Jacobs            Chairman and CEO
  306. Harvey P. White                 President
  307. Dr. Andrew J. Viterbi         Vice Chairman and CTO
  308. Richard N. Sulpizio            Senior Vice President and COO
  309. Adelia A. Coffman                Senior Vice President and CFO
  310.  
  311.  
  312. Editorial inquiries should be directed to:   
  313. Chip Swearngan, McQUERTERGROUP      
  314.      Phone: (619) 450-0030  FAX: (619) 450-0967
  315. Karen Bowman, QUALCOMM Incorporated    
  316.     Phone: (619) 597-5021  FAX: (619) 587-8276
  317.  
  318.         
  319. 4/93</span></text>
  320.     </content>
  321.     <name></name>
  322.     <script></script>
  323. </card>
  324.  
  325.  
  326. card_17560.xml
  327. <?xml version="1.0" encoding="utf-8" ?>
  328. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  329. <card>
  330.     <id>17560</id>
  331.     <filler1>0</filler1>
  332.     <cantDelete> <false /> </cantDelete>
  333.     <showPict> <true /> </showPict>
  334.     <dontSearch> <false /> </dontSearch>
  335.     <owner>2620</owner>
  336.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  337.     <part>
  338.         <id>2</id>
  339.         <type>button</type>
  340.         <visible> <true /> </visible>
  341.         <reserved5> 0 </reserved5>
  342.         <reserved4> 0 </reserved4>
  343.         <reserved3> 0 </reserved3>
  344.         <reserved2> 0 </reserved2>
  345.         <reserved1> 0 </reserved1>
  346.         <enabled> <true /> </enabled>
  347.         <rect>
  348.             <left>206</left>
  349.             <top>140</top>
  350.             <right>306</right>
  351.             <bottom>162</bottom>
  352.         </rect>
  353.         <style>roundrect</style>
  354.         <showName> <true /> </showName>
  355.         <highlight> <false /> </highlight>
  356.         <autoHighlight> <false /> </autoHighlight>
  357.         <sharedHighlight> <true /> </sharedHighlight>
  358.         <family>0</family>
  359.         <titleWidth>0</titleWidth>
  360.         <icon>0</icon>
  361.         <textAlign>center</textAlign>
  362.         <font>Chicago</font>
  363.         <textSize>12</textSize>
  364.         <textStyle>plain</textStyle>
  365.         <name>Yes.</name>
  366.         <script>on mouseUp
  367. show cd field 1
  368. end mouseUp</script>
  369.     </part>
  370.     <part>
  371.         <id>1</id>
  372.         <type>field</type>
  373.         <visible> <false /> </visible>
  374.         <dontWrap> <false /> </dontWrap>
  375.         <dontSearch> <false /> </dontSearch>
  376.         <sharedText> <false /> </sharedText>
  377.         <fixedLineHeight> <false /> </fixedLineHeight>
  378.         <autoTab> <false /> </autoTab>
  379.         <lockText> <true /> </lockText>
  380.         <rect>
  381.             <left>73</left>
  382.             <top>86</top>
  383.             <right>493</right>
  384.             <bottom>286</bottom>
  385.         </rect>
  386.         <style>opaque</style>
  387.         <autoSelect> <false /> </autoSelect>
  388.         <showLines> <false /> </showLines>
  389.         <wideMargins> <false /> </wideMargins>
  390.         <multipleLines> <false /> </multipleLines>
  391.         <reservedFamily> 0 </reservedFamily>
  392.         <titleWidth>0</titleWidth>
  393.         <icon>0</icon>
  394.         <textAlign>left</textAlign>
  395.         <font>Geneva</font>
  396.         <textSize>12</textSize>
  397.         <textStyle>plain</textStyle>
  398.         <textHeight>16</textHeight>
  399.         <name></name>
  400.         <script></script>
  401.     </part>
  402.     <content>
  403.         <layer>background</layer>
  404.         <id>2</id>
  405.         <text>What about PC users?  Is there a Eudora for them?</text>
  406.     </content>
  407.     <content>
  408.         <layer>background</layer>
  409.         <id>3</id>
  410.         <text>They deserve to suffer, don't you agree?
  411. </text>
  412.     </content>
  413.     <content>
  414.         <layer>card</layer>
  415.         <id>1</id>
  416.         <text>PC-Eudora is now available for anonymous ftp.  If you can't find it, mail pc-eudora-info@qualcomm.com for information.
  417.  
  418. Please, don't ask me about PC-Eudora issues; I don't do PC's.  Ask pc-eudora-info.</text>
  419.     </content>
  420.     <name></name>
  421.     <script>on closecard
  422. hide cd field 1
  423. pass closecard
  424. end closecard</script>
  425. </card>
  426.  
  427.  
  428. card_3046.xml
  429. <?xml version="1.0" encoding="utf-8" ?>
  430. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  431. <card>
  432.     <id>3046</id>
  433.     <filler1>0</filler1>
  434.     <cantDelete> <false /> </cantDelete>
  435.     <showPict> <true /> </showPict>
  436.     <dontSearch> <false /> </dontSearch>
  437.     <owner>2620</owner>
  438.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  439.     <part>
  440.         <id>1</id>
  441.         <type>button</type>
  442.         <visible> <true /> </visible>
  443.         <reserved5> 0 </reserved5>
  444.         <reserved4> 0 </reserved4>
  445.         <reserved3> 0 </reserved3>
  446.         <reserved2> 0 </reserved2>
  447.         <reserved1> 0 </reserved1>
  448.         <enabled> <true /> </enabled>
  449.         <rect>
  450.             <left>147</left>
  451.             <top>254</top>
  452.             <right>352</right>
  453.             <bottom>276</bottom>
  454.         </rect>
  455.         <style>roundrect</style>
  456.         <showName> <true /> </showName>
  457.         <highlight> <false /> </highlight>
  458.         <autoHighlight> <false /> </autoHighlight>
  459.         <sharedHighlight> <true /> </sharedHighlight>
  460.         <family>0</family>
  461.         <titleWidth>0</titleWidth>
  462.         <icon>0</icon>
  463.         <textAlign>center</textAlign>
  464.         <font>Chicago</font>
  465.         <textSize>12</textSize>
  466.         <textStyle>plain</textStyle>
  467.         <name>I want it somewhere else</name>
  468.         <script>on mouseUp
  469. go to card id 3757
  470. end mouseUp
  471.  
  472. </script>
  473.     </part>
  474.     <content>
  475.         <layer>background</layer>
  476.         <id>2</id>
  477.         <text>Where does Eudora keep my mail?  How can multiple users share one Macintosh and both use Eudora?</text>
  478.     </content>
  479.     <content>
  480.         <layer>background</layer>
  481.         <id>3</id>
  482.         <text>Eudora keeps all its documents in a folder called, "Eudora Folder," in your system folder.  There are several different types of documents in the folder.
  483. 1. "Eudora Settings" stores your current settings.
  484. 2. "Eudora Nicknames" stores your list of Nicknames.
  485. 3. "Eudora Log" is used for logging
  486. 4. There are two documents for each mailbox listed in the "Mailbox" menu.  One has same name as the mailbox, and your mail is stored in it.  The other has ".toc" appended onto the name of the mailbox.  This document contains the "table of contents" for the mailbox.
  487. </text>
  488.     </content>
  489.     <name></name>
  490.     <script></script>
  491. </card>
  492.  
  493.  
  494. card_15306.xml
  495. <?xml version="1.0" encoding="utf-8" ?>
  496. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  497. <card>
  498.     <id>15306</id>
  499.     <filler1>0</filler1>
  500.     <cantDelete> <false /> </cantDelete>
  501.     <showPict> <true /> </showPict>
  502.     <dontSearch> <false /> </dontSearch>
  503.     <owner>2620</owner>
  504.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  505.     <content>
  506.         <layer>background</layer>
  507.         <id>2</id>
  508.         <text>Can I keep Eudora from putting mail in the System folder?</text>
  509.     </content>
  510.     <content>
  511.         <layer>background</layer>
  512.         <id>3</id>
  513.         <text>Yes.  Create a plain file (NOT a folder) named ‚ÄúEudora Folder‚Äù in the System Folder.  Eudora will then insist on being started from a Settings File.
  514.  
  515.  
  516.  
  517.  
  518.  
  519. </text>
  520.     </content>
  521.     <name></name>
  522.     <script></script>
  523. </card>
  524.  
  525.  
  526. card_15605.xml
  527. <?xml version="1.0" encoding="utf-8" ?>
  528. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  529. <card>
  530.     <id>15605</id>
  531.     <filler1>0</filler1>
  532.     <cantDelete> <false /> </cantDelete>
  533.     <showPict> <true /> </showPict>
  534.     <dontSearch> <false /> </dontSearch>
  535.     <owner>2620</owner>
  536.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  537.     <part>
  538.         <id>1</id>
  539.         <type>button</type>
  540.         <visible> <true /> </visible>
  541.         <reserved5> 0 </reserved5>
  542.         <reserved4> 0 </reserved4>
  543.         <reserved3> 0 </reserved3>
  544.         <reserved2> 0 </reserved2>
  545.         <reserved1> 0 </reserved1>
  546.         <enabled> <true /> </enabled>
  547.         <rect>
  548.             <left>370</left>
  549.             <top>104</top>
  550.             <right>433</right>
  551.             <bottom>125</bottom>
  552.         </rect>
  553.         <style>roundrect</style>
  554.         <showName> <true /> </showName>
  555.         <highlight> <false /> </highlight>
  556.         <autoHighlight> <true /> </autoHighlight>
  557.         <sharedHighlight> <true /> </sharedHighlight>
  558.         <family>0</family>
  559.         <titleWidth>0</titleWidth>
  560.         <icon>0</icon>
  561.         <textAlign>center</textAlign>
  562.         <font>Chicago</font>
  563.         <textSize>12</textSize>
  564.         <textStyle>plain</textStyle>
  565.         <name>How?</name>
  566.         <script>on mouseUp
  567. go to card id 11322
  568. find string "skip big"
  569. end mouseUp
  570.  
  571. </script>
  572.     </part>
  573.     <content>
  574.         <layer>background</layer>
  575.         <id>2</id>
  576.         <text>How big is "big"?</text>
  577.     </content>
  578.     <content>
  579.         <layer>background</layer>
  580.         <id>3</id>
  581.         <text>As far as Eudora's "Skip big messages" switch is concerned, big is 40K.  You can change this limit with ResEdit.  
  582. </text>
  583.     </content>
  584.     <name></name>
  585.     <script></script>
  586. </card>
  587.  
  588.  
  589. card_7356.xml
  590. <?xml version="1.0" encoding="utf-8" ?>
  591. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  592. <card>
  593.     <id>7356</id>
  594.     <filler1>0</filler1>
  595.     <cantDelete> <false /> </cantDelete>
  596.     <showPict> <true /> </showPict>
  597.     <dontSearch> <false /> </dontSearch>
  598.     <owner>2620</owner>
  599.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  600.     <content>
  601.         <layer>background</layer>
  602.         <id>2</id>
  603.         <text>Why the name, "Eudora"?</text>
  604.     </content>
  605.     <content>
  606.         <layer>background</layer>
  607.         <id>3</id>
  608.         <text>Because I seem to live at the P.O.
  609. </text>
  610.     </content>
  611.     <name></name>
  612.     <script></script>
  613. </card>
  614.  
  615.  
  616. card_6823.xml
  617. <?xml version="1.0" encoding="utf-8" ?>
  618. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  619. <card>
  620.     <id>6823</id>
  621.     <filler1>0</filler1>
  622.     <cantDelete> <false /> </cantDelete>
  623.     <showPict> <true /> </showPict>
  624.     <dontSearch> <false /> </dontSearch>
  625.     <owner>2620</owner>
  626.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  627.     <content>
  628.         <layer>background</layer>
  629.         <id>2</id>
  630.         <text>My correspondents are complaining that lines in the messages I send them are broken in funny places.  How can I make Eudora send better-looking messages?</text>
  631.     </content>
  632.     <content>
  633.         <layer>background</layer>
  634.         <id>3</id>
  635.         <text>The best way is to set the "Word-wrap outgoing messages." preference, and only press return when you want to start a new paragraph.  Eudora will take care of breaking your paragraphs into lines.
  636.  
  637. </text>
  638.     </content>
  639.     <name></name>
  640.     <script></script>
  641. </card>
  642.  
  643.  
  644. card_3303.xml
  645. <?xml version="1.0" encoding="utf-8" ?>
  646. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  647. <card>
  648.     <id>3303</id>
  649.     <filler1>0</filler1>
  650.     <cantDelete> <false /> </cantDelete>
  651.     <showPict> <true /> </showPict>
  652.     <dontSearch> <false /> </dontSearch>
  653.     <owner>2620</owner>
  654.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  655.     <part>
  656.         <id>1</id>
  657.         <type>button</type>
  658.         <visible> <true /> </visible>
  659.         <reserved5> 0 </reserved5>
  660.         <reserved4> 0 </reserved4>
  661.         <reserved3> 0 </reserved3>
  662.         <reserved2> 0 </reserved2>
  663.         <reserved1> 0 </reserved1>
  664.         <enabled> <true /> </enabled>
  665.         <rect>
  666.             <left>320</left>
  667.             <top>259</top>
  668.             <right>379</right>
  669.             <bottom>281</bottom>
  670.         </rect>
  671.         <style>roundrect</style>
  672.         <showName> <true /> </showName>
  673.         <highlight> <false /> </highlight>
  674.         <autoHighlight> <false /> </autoHighlight>
  675.         <sharedHighlight> <true /> </sharedHighlight>
  676.         <family>0</family>
  677.         <titleWidth>0</titleWidth>
  678.         <icon>0</icon>
  679.         <textAlign>center</textAlign>
  680.         <font>Chicago</font>
  681.         <textSize>12</textSize>
  682.         <textStyle>plain</textStyle>
  683.         <name>How?</name>
  684.         <script>on mouseUp
  685. go to card id 3387
  686. end mouseUp
  687.  
  688. </script>
  689.     </part>
  690.     <content>
  691.         <layer>background</layer>
  692.         <id>2</id>
  693.         <text>Can I keep my mail on a floppy?</text>
  694.     </content>
  695.     <content>
  696.         <layer>background</layer>
  697.         <id>3</id>
  698.         <text><span class="style3">es, you can.  First, run Eudora and allow it to create the "Eudora Folder" in the system folder.  Then drag the Eudora Folder onto the floppy you wish to use for your mail.
  699.  
  700. When you want to read your mail, start Eudora by DOUBLE-CLICKING the "Eudora Settings" document in the folder on the floppy.  If you double-click on Eudora itself, Eudora will create a new Eudora Folder in the system folder.  (If you want to disable that behavior, place a regular document (any kind of document) named "Eudora Folder" in your system folder.)
  701.  
  702.  
  703. You may also use any folder on your hard disk.
  704. </span></text>
  705.     </content>
  706.     <name></name>
  707.     <script></script>
  708. </card>
  709.  
  710.  
  711. card_3387.xml
  712. <?xml version="1.0" encoding="utf-8" ?>
  713. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  714. <card>
  715.     <id>3387</id>
  716.     <filler1>0</filler1>
  717.     <cantDelete> <false /> </cantDelete>
  718.     <showPict> <true /> </showPict>
  719.     <dontSearch> <false /> </dontSearch>
  720.     <owner>2620</owner>
  721.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  722.     <part>
  723.         <id>1</id>
  724.         <type>button</type>
  725.         <visible> <true /> </visible>
  726.         <reserved5> 0 </reserved5>
  727.         <reserved4> 0 </reserved4>
  728.         <reserved3> 0 </reserved3>
  729.         <reserved2> 0 </reserved2>
  730.         <reserved1> 0 </reserved1>
  731.         <enabled> <true /> </enabled>
  732.         <rect>
  733.             <left>294</left>
  734.             <top>259</top>
  735.             <right>353</right>
  736.             <bottom>281</bottom>
  737.         </rect>
  738.         <style>roundrect</style>
  739.         <showName> <true /> </showName>
  740.         <highlight> <false /> </highlight>
  741.         <autoHighlight> <false /> </autoHighlight>
  742.         <sharedHighlight> <true /> </sharedHighlight>
  743.         <family>0</family>
  744.         <titleWidth>0</titleWidth>
  745.         <icon>0</icon>
  746.         <textAlign>center</textAlign>
  747.         <font>Chicago</font>
  748.         <textSize>12</textSize>
  749.         <textStyle>plain</textStyle>
  750.         <name>How?</name>
  751.         <script>on mouseUp
  752. go to card id 3303
  753. end mouseUp
  754.  
  755. </script>
  756.     </part>
  757.     <content>
  758.         <layer>background</layer>
  759.         <id>2</id>
  760.         <text>Can I keep my mail somewhere besides the system folder of my hard disk?</text>
  761.     </content>
  762.     <content>
  763.         <layer>background</layer>
  764.         <id>3</id>
  765.         <text><span class="style3">es, you can.  First, run Eudora and allow it to create the "Eudora Folder" in the system folder.  Then, drag all the documents from the Eudora Folder into the folder you wish to use for your mail.  You may throw away the Eudora Folder itself.
  766.  
  767. When you want to read your mail, start Eudora by DOUBLE-CLICKING the "Eudora Settings" document IN THE FOLDER.  If you double-click on Eudora itself, Eudora will create a new Eudora Folder in the system folder.  (If you want to disable that behavior, place a regular document (any kind of document) named "Eudora Folder" in your system folder.)
  768.  
  769. You may also use a floppy for your mail.
  770.  
  771.  
  772. </span></text>
  773.     </content>
  774.     <name></name>
  775.     <script></script>
  776. </card>
  777.  
  778.  
  779. card_3757.xml
  780. <?xml version="1.0" encoding="utf-8" ?>
  781. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  782. <card>
  783.     <id>3757</id>
  784.     <filler1>0</filler1>
  785.     <cantDelete> <false /> </cantDelete>
  786.     <showPict> <true /> </showPict>
  787.     <dontSearch> <false /> </dontSearch>
  788.     <owner>2620</owner>
  789.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  790.     <part>
  791.         <id>1</id>
  792.         <type>button</type>
  793.         <visible> <true /> </visible>
  794.         <reserved5> 0 </reserved5>
  795.         <reserved4> 0 </reserved4>
  796.         <reserved3> 0 </reserved3>
  797.         <reserved2> 0 </reserved2>
  798.         <reserved1> 0 </reserved1>
  799.         <enabled> <true /> </enabled>
  800.         <rect>
  801.             <left>350</left>
  802.             <top>179</top>
  803.             <right>409</right>
  804.             <bottom>201</bottom>
  805.         </rect>
  806.         <style>roundrect</style>
  807.         <showName> <true /> </showName>
  808.         <highlight> <false /> </highlight>
  809.         <autoHighlight> <false /> </autoHighlight>
  810.         <sharedHighlight> <true /> </sharedHighlight>
  811.         <family>0</family>
  812.         <titleWidth>0</titleWidth>
  813.         <icon>0</icon>
  814.         <textAlign>center</textAlign>
  815.         <font>Chicago</font>
  816.         <textSize>12</textSize>
  817.         <textStyle>plain</textStyle>
  818.         <name>How?</name>
  819.         <script>on mouseUp
  820. go to card id 3387
  821. end mouseUp
  822.  
  823. </script>
  824.     </part>
  825.     <part>
  826.         <id>2</id>
  827.         <type>button</type>
  828.         <visible> <true /> </visible>
  829.         <reserved5> 0 </reserved5>
  830.         <reserved4> 0 </reserved4>
  831.         <reserved3> 0 </reserved3>
  832.         <reserved2> 0 </reserved2>
  833.         <reserved1> 0 </reserved1>
  834.         <enabled> <true /> </enabled>
  835.         <rect>
  836.             <left>352</left>
  837.             <top>114</top>
  838.             <right>411</right>
  839.             <bottom>136</bottom>
  840.         </rect>
  841.         <style>roundrect</style>
  842.         <showName> <true /> </showName>
  843.         <highlight> <false /> </highlight>
  844.         <autoHighlight> <false /> </autoHighlight>
  845.         <sharedHighlight> <true /> </sharedHighlight>
  846.         <family>0</family>
  847.         <titleWidth>0</titleWidth>
  848.         <icon>0</icon>
  849.         <textAlign>center</textAlign>
  850.         <font>Chicago</font>
  851.         <textSize>12</textSize>
  852.         <textStyle>plain</textStyle>
  853.         <name>How?</name>
  854.         <script>on mouseUp
  855. go to card id 3303
  856. end mouseUp
  857.  
  858. </script>
  859.     </part>
  860.     <content>
  861.         <layer>background</layer>
  862.         <id>2</id>
  863.         <text>Can two or more people share one Macintosh for their mail?</text>
  864.     </content>
  865.     <content>
  866.         <layer>background</layer>
  867.         <id>3</id>
  868.         <text>Yes.  They may do so by either:
  869.  
  870. 1. Keeping their mail on separate floppies.
  871.  
  872. or
  873.  
  874. 2. Keeping their mail in separate folders.</text>
  875.     </content>
  876.     <name></name>
  877.     <script></script>
  878. </card>
  879.  
  880.  
  881. card_3950.xml
  882. <?xml version="1.0" encoding="utf-8" ?>
  883. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  884. <card>
  885.     <id>3950</id>
  886.     <filler1>0</filler1>
  887.     <cantDelete> <false /> </cantDelete>
  888.     <showPict> <true /> </showPict>
  889.     <dontSearch> <false /> </dontSearch>
  890.     <owner>2620</owner>
  891.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  892.     <content>
  893.         <layer>background</layer>
  894.         <id>2</id>
  895.         <text>How come it lets me set my return address; isn't that a security problem?</text>
  896.     </content>
  897.     <content>
  898.         <layer>background</layer>
  899.         <id>3</id>
  900.         <text>Yes and no.  You can, after all, type anything you want for a "From" address on a regular letter, and forge a signature.  The key word here is, "forge."  Forgery is what you are committing when you type use someone else's address for your return address.
  901.  
  902. In any case, Internet mail is inherently subject to forged messages.  Eudora doesn't pretend things are otherwise.
  903. </text>
  904.     </content>
  905.     <name></name>
  906.     <script></script>
  907. </card>
  908.  
  909.  
  910. card_14723.xml
  911. <?xml version="1.0" encoding="utf-8" ?>
  912. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  913. <card>
  914.     <id>14723</id>
  915.     <filler1>0</filler1>
  916.     <cantDelete> <false /> </cantDelete>
  917.     <showPict> <true /> </showPict>
  918.     <dontSearch> <false /> </dontSearch>
  919.     <owner>2620</owner>
  920.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  921.     <content>
  922.         <layer>background</layer>
  923.         <id>2</id>
  924.         <text>My mailer insists on having a Date: header in my mail; can Eudora make one?</text>
  925.     </content>
  926.     <content>
  927.         <layer>background</layer>
  928.         <id>3</id>
  929.         <text>Eudora will put a Date: header on your mail if you have set the location of your Macintosh with the Map control panel.
  930. </text>
  931.     </content>
  932.     <name></name>
  933.     <script></script>
  934. </card>
  935.  
  936.  
  937. card_5133.xml
  938. <?xml version="1.0" encoding="utf-8" ?>
  939. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  940. <card>
  941.     <id>5133</id>
  942.     <filler1>0</filler1>
  943.     <cantDelete> <false /> </cantDelete>
  944.     <showPict> <true /> </showPict>
  945.     <dontSearch> <false /> </dontSearch>
  946.     <owner>2620</owner>
  947.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  948.     <content>
  949.         <layer>background</layer>
  950.         <id>2</id>
  951.         <text>What's the difference between a POP account and an SMTP server?</text>
  952.     </content>
  953.     <content>
  954.         <layer>background</layer>
  955.         <id>3</id>
  956.         <text>POP (Post Office Protocol) is what you use to pick up your mail.  Your mail is stored in your POP account until you pick it up, either with Eudora or by logging into the POP server directly.  The POP server requires that you provide a login and password.
  957.  
  958. SMTP (Simple Mail Transfer Protocol) is used to send your mail.  SMTP does NOT require a login and a password.
  959.  
  960. You needn't use the same server for SMTP and POP, though you can if you wish.</text>
  961.     </content>
  962.     <name></name>
  963.     <script></script>
  964. </card>
  965.  
  966.  
  967. card_5515.xml
  968. <?xml version="1.0" encoding="utf-8" ?>
  969. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  970. <card>
  971.     <id>5515</id>
  972.     <filler1>0</filler1>
  973.     <cantDelete> <false /> </cantDelete>
  974.     <showPict> <true /> </showPict>
  975.     <dontSearch> <false /> </dontSearch>
  976.     <owner>2620</owner>
  977.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  978.     <content>
  979.         <layer>background</layer>
  980.         <id>2</id>
  981.         <text>I have an "alias" list on UNIX.  Do I have to type all that back in?</text>
  982.     </content>
  983.     <content>
  984.         <layer>background</layer>
  985.         <id>3</id>
  986.         <text><span class="style3">ope.  Transfer your .mailrc file to your Macintosh, using ftp or kermit's TEXT mode.  Then, put the file in your mail folder (by default "Eudora Folder" in the system folder), and name it, "Eudora Nicknames".  Eudora will use the lines in it that begin with "alias", and ignore the rest.
  987.  
  988. Two caveats; One, if a given nickname appears more than once in your .mailrc file, UNIX will make one big nickname out of all the lines.  Eudora will ignore all but the last nickname.  Eudora DOES understand what a "\" at the end of a line means, so if you used them to build lists in your .mailrc, you'll be ok.
  989.  
  990. Two, if you have more than one address listed for an alias, separate the addresses with </span><span class="style2">commas</span><span class="style3">, not spaces.
  991.  
  992. </span></text>
  993.     </content>
  994.     <name></name>
  995.     <script></script>
  996. </card>
  997.  
  998.  
  999. card_5734.xml
  1000. <?xml version="1.0" encoding="utf-8" ?>
  1001. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1002. <card>
  1003.     <id>5734</id>
  1004.     <filler1>0</filler1>
  1005.     <cantDelete> <false /> </cantDelete>
  1006.     <showPict> <true /> </showPict>
  1007.     <dontSearch> <false /> </dontSearch>
  1008.     <owner>2620</owner>
  1009.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1010.     <content>
  1011.         <layer>background</layer>
  1012.         <id>2</id>
  1013.         <text>I have a LOT of stored mail on UNIX.  Can I get that into Eudora?</text>
  1014.     </content>
  1015.     <content>
  1016.         <layer>background</layer>
  1017.         <id>3</id>
  1018.         <text><span class="style1">up.  It just </span><span class="style4">happens</span><span class="style1"> that Eudora uses the same format for storing mail that the bsd Mail program does.  Simply transfer the files to your Macintosh, using FTP's or kermit's TEXT mode, and place them in your mail folder (by default "Eudora Folder" in your system folder).
  1019.  
  1020. Warning: Eudora will not handle messages over 32K in length.  You won't be able to open such messages, unless you break them up.  The easiest way to do this is to use the mailbox for "UUCP input"; see README.uucp for details.</span></text>
  1021.     </content>
  1022.     <name></name>
  1023.     <script></script>
  1024. </card>
  1025.  
  1026.  
  1027. card_5979.xml
  1028. <?xml version="1.0" encoding="utf-8" ?>
  1029. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1030. <card>
  1031.     <id>5979</id>
  1032.     <filler1>0</filler1>
  1033.     <cantDelete> <false /> </cantDelete>
  1034.     <showPict> <true /> </showPict>
  1035.     <dontSearch> <false /> </dontSearch>
  1036.     <owner>2620</owner>
  1037.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1038.     <content>
  1039.         <layer>background</layer>
  1040.         <id>2</id>
  1041.         <text>Can I get mail and nicknames out of Eudora and back to UNIX?</text>
  1042.     </content>
  1043.     <content>
  1044.         <layer>background</layer>
  1045.         <id>3</id>
  1046.         <text>Yup.  Upload the "Eudora Nicknames" document and any mailbox documents you wish, using FTP's or kermit's TEXT mode.
  1047.  
  1048. Beware that, if you used Eudora to change any of your nicknames, all commands EXCEPT alias commands will have been removed from "Eudora Nicknames".  You may wish to use vi to combine "Eudora Nicknames" and your present ".mailrc" file, rather than just renaming "Eudora Nicknames" to ".mailrc".</text>
  1049.     </content>
  1050.     <name></name>
  1051.     <script></script>
  1052. </card>
  1053.  
  1054.  
  1055. card_11208.xml
  1056. <?xml version="1.0" encoding="utf-8" ?>
  1057. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1058. <card>
  1059.     <id>11208</id>
  1060.     <filler1>0</filler1>
  1061.     <cantDelete> <false /> </cantDelete>
  1062.     <showPict> <true /> </showPict>
  1063.     <dontSearch> <false /> </dontSearch>
  1064.     <owner>2620</owner>
  1065.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1066.     <content>
  1067.         <layer>background</layer>
  1068.         <id>2</id>
  1069.         <text>I have an ancient FastPath, and MacTCP doesn't seem to work.  What do I do?</text>
  1070.     </content>
  1071.     <content>
  1072.         <layer>background</layer>
  1073.         <id>3</id>
  1074.         <text>Have your FastPath upgraded to a FastPath 5, or buy a Gatorbox (info@cayman.com) or Multigate, or something else like that.
  1075.  
  1076. Or get an Ethernet instead.</text>
  1077.     </content>
  1078.     <name></name>
  1079.     <script></script>
  1080. </card>
  1081.  
  1082.  
  1083. card_11322.xml
  1084. <?xml version="1.0" encoding="utf-8" ?>
  1085. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1086. <card>
  1087.     <id>11322</id>
  1088.     <filler1>0</filler1>
  1089.     <cantDelete> <false /> </cantDelete>
  1090.     <showPict> <true /> </showPict>
  1091.     <dontSearch> <false /> </dontSearch>
  1092.     <owner>2620</owner>
  1093.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1094.     <part>
  1095.         <id>2</id>
  1096.         <type>field</type>
  1097.         <visible> <true /> </visible>
  1098.         <dontWrap> <true /> </dontWrap>
  1099.         <dontSearch> <false /> </dontSearch>
  1100.         <sharedText> <false /> </sharedText>
  1101.         <fixedLineHeight> <false /> </fixedLineHeight>
  1102.         <autoTab> <false /> </autoTab>
  1103.         <lockText> <false /> </lockText>
  1104.         <rect>
  1105.             <left>78</left>
  1106.             <top>115</top>
  1107.             <right>486</right>
  1108.             <bottom>251</bottom>
  1109.         </rect>
  1110.         <style>scrolling</style>
  1111.         <autoSelect> <false /> </autoSelect>
  1112.         <showLines> <false /> </showLines>
  1113.         <wideMargins> <false /> </wideMargins>
  1114.         <multipleLines> <false /> </multipleLines>
  1115.         <reservedFamily> 0 </reservedFamily>
  1116.         <titleWidth>0</titleWidth>
  1117.         <icon>0</icon>
  1118.         <textAlign>left</textAlign>
  1119.         <font>Geneva</font>
  1120.         <textSize>9</textSize>
  1121.         <textStyle>plain</textStyle>
  1122.         <textHeight>12</textHeight>
  1123.         <name></name>
  1124.         <script></script>
  1125.     </part>
  1126.     <part>
  1127.         <id>3</id>
  1128.         <type>button</type>
  1129.         <visible> <true /> </visible>
  1130.         <reserved5> 0 </reserved5>
  1131.         <reserved4> 0 </reserved4>
  1132.         <reserved3> 0 </reserved3>
  1133.         <reserved2> 0 </reserved2>
  1134.         <reserved1> 0 </reserved1>
  1135.         <enabled> <true /> </enabled>
  1136.         <rect>
  1137.             <left>436</left>
  1138.             <top>90</top>
  1139.             <right>482</right>
  1140.             <bottom>112</bottom>
  1141.         </rect>
  1142.         <style>roundrect</style>
  1143.         <showName> <true /> </showName>
  1144.         <highlight> <false /> </highlight>
  1145.         <autoHighlight> <false /> </autoHighlight>
  1146.         <sharedHighlight> <true /> </sharedHighlight>
  1147.         <family>0</family>
  1148.         <titleWidth>0</titleWidth>
  1149.         <icon>0</icon>
  1150.         <textAlign>center</textAlign>
  1151.         <font>Chicago</font>
  1152.         <textSize>12</textSize>
  1153.         <textStyle>plain</textStyle>
  1154.         <name>Tips</name>
  1155.         <script>on mouseUp
  1156. go to card id 4920
  1157. end mouseUp</script>
  1158.     </part>
  1159.     <part>
  1160.         <id>4</id>
  1161.         <type>button</type>
  1162.         <visible> <true /> </visible>
  1163.         <reserved5> 0 </reserved5>
  1164.         <reserved4> 0 </reserved4>
  1165.         <reserved3> 0 </reserved3>
  1166.         <reserved2> 0 </reserved2>
  1167.         <reserved1> 0 </reserved1>
  1168.         <enabled> <true /> </enabled>
  1169.         <rect>
  1170.             <left>373</left>
  1171.             <top>258</top>
  1172.             <right>487</right>
  1173.             <bottom>280</bottom>
  1174.         </rect>
  1175.         <style>roundrect</style>
  1176.         <showName> <true /> </showName>
  1177.         <highlight> <false /> </highlight>
  1178.         <autoHighlight> <false /> </autoHighlight>
  1179.         <sharedHighlight> <true /> </sharedHighlight>
  1180.         <family>0</family>
  1181.         <titleWidth>0</titleWidth>
  1182.         <icon>0</icon>
  1183.         <textAlign>center</textAlign>
  1184.         <font>Chicago</font>
  1185.         <textSize>12</textSize>
  1186.         <textStyle>plain</textStyle>
  1187.         <name>Ooo!  Show Me!</name>
  1188.         <script>on mouseUp
  1189. go to card id 12664
  1190. end mouseUp</script>
  1191.     </part>
  1192.     <content>
  1193.         <layer>background</layer>
  1194.         <id>2</id>
  1195.         <text>I don't think Eudora has enough settings; I want to tune, tweak, and in general find havoc to wreak.</text>
  1196.     </content>
  1197.     <content>
  1198.         <layer>background</layer>
  1199.         <id>3</id>
  1200.         <text>You can customize a LOT of things with ResEdit:
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211. There are also a bunch of "secret" preferences.</text>
  1212.     </content>
  1213.     <content>
  1214.         <layer>card</layer>
  1215.         <id>2</id>
  1216.         <text>5602 ALERT_TIMEOUT The number of seconds before alerts are automatically dismissed.
  1217. 5604 ALIAS_A_WIDTH Width of the Nickname list column in the Nicknames window.
  1218. 5605 ALIAS_CMD DON'T TOUCH.
  1219. 5606 ALIAS_E_LABEL Label for the addresses section of the nicknames window.
  1220. 5607 ALIAS_FILE Name of nickname file.
  1221. 5608 ALIAS_ADDR_PC Percent of vertical space to allot to addresses in nicknames.
  1222. 5614 ALREADY_READ Status header (substring) for already-read message.
  1223. 5615 APPL_FONT Name of application font.
  1224. 5801 BINHEX BinHex intro line, used to recognize BinHex files.  DON'T TOUCH.
  1225. 5808 BINHEX_OUT BinHex intro line, put on outgoing messages.  DON'T TOUCH.
  1226. 5816 BUFFER_SIZE Disk I/O buffer size.
  1227. 6001 COMP_TOP_MARGIN Height of icon bar.
  1228. 6017 CTB_NEWLINE Newline used during CTB connections.
  1229. 6020 DATE_HEADER DON'T TOUCH.
  1230. 6201 DATE_STRING_FMT DON'T TOUCH.
  1231. 6203 DELIMITERS DON'T TOUCH.
  1232. 6205 DOUBLE_TOLERANCE Double-click mouse movement tolerance.
  1233. 6211 FILE_LINE_FMT Don't touch.
  1234. 6213 FLUSH_SECS Number of seconds between FlushVol calls.
  1235. 6214 FOLDER_NAME Name of Eudora folder.
  1236. 6219 ICMP_SECONDS Number of seconds to leave ICMP messages on-screen.
  1237. 6220 IN Name of In mailbox (be sure to change Mailbox && Transfer menus, too.)
  1238. 6401 INFINITE_STRING DON'T TOUCH.
  1239. 6408 FRAGMENT_SIZE Size at which to split messages.  Must satisfy FRAGMENT_SIZE<SPLIT_THRESH<32K
  1240. 6411 MBOX_MOVE Mailboxes window button name.
  1241. 6412 MBOX_MOVE_BACK Mailboxes window button name.
  1242. 6413 MBOX_NEW Mailboxes window button name.
  1243. 6414 MBOX_REMOVE Mailboxes window button name.
  1244. 6415 MBOX_RENAME Mailboxes window button name.
  1245. 6416 NOTE_CMD Command used for notes in nicknames window.
  1246. 6602 NAVIN Navigation In string name.
  1247. 6603 NAVOUT Navigation Out string name.
  1248. 6604 NEWLINE TCP newline string.
  1249. 6804 OPEN_TIMEOUT Timeout for opening connections.
  1250. 6805 OUT Name of Out mailbox (be sure to change Mailbox menu, too.)
  1251. 6806 PARTIAL_TICKS Number of ticks before Live Nicknames moves pointer.
  1252. 6812 PH_HOST Default ph host.
  1253. 6814 PH_PORT Port used for ph.
  1254. 6815 PH_QUERY Query command used in ph.  Should end with space.
  1255. 6816 PH_QUIT Quit command used in ph.
  1256. 6820 POP_PORT Port used for POP3.
  1257. 7002 POSITION_NAME Names of window size resources.
  1258. 7004 PRINT_FONT Default print font.
  1259. 7005 PRINT_H_FONT Print header font.
  1260. 7006 PRINT_H_MAR Print header margin.
  1261. 7007 PRINT_H_SIZE Print header fontsize.
  1262. 7008 QUEUE_BUTTON Name of Queue button.
  1263. 7009 QUOTE_PREFIX Prefix for quoted sections.
  1264. 7016 RECEIVED_HEAD Don't touch.
  1265. 7017 RECV_TIMEOUT Receive timeout, in seconds.
  1266. 7207 SEND_BUTTON Name of Send button.
  1267. 7208 SETTINGS_FILE Name of settings/signature file.
  1268. 7209 SHORT_TIMEOUT Number of seconds for timeouts during navigation.
  1269. 7211 SMTP_PORT Port for SMTP.
  1270. 7213 STATE_LABELS Message state labels.
  1271. 7214 STATUS Header that gives message status.
  1272. 7216 FWD_INTRO String to insert before quoted Forward text
  1273. 7218 TAB_DISTANCE Number of chars to indent for a tab.
  1274. 7219 TCP_BUFFER_SIZE Buffer size for network.
  1275. 7220 TCP_DRIVER Name of tcp/ip driver.
  1276. 7402 TEMP_SUFFIX Temp file suffix.
  1277. 7403 TEXT_CREATOR Default TEXT file creator.
  1278. 7408 TOC_SUFFIX Suffix for table of contents files.
  1279. 7411 TRANSFER_PREFIX Prefix for use in Transfer menu.
  1280. 7412 TRASH Name of Trash mailbox (be sure to change Mailbox && Transfer menus, too.)
  1281. 7413 TS_CONNECT_FMT CTB connect request string.
  1282. 7419 WRAP_LIMIT Number of chars at which to wrap messages.
  1283. 7605 NAVMID Navigation Mid string name.
  1284. 7606 PRINT_LEFT_MAR Left printout margin.
  1285. 7607 PRINT_RIGHT_MAR Right printout margin.
  1286. 7609 CTB_ME SMTP Helo argument for dialups.
  1287. 7610 TCP_ME SMTP Helo argument for networks.
  1288. 7611 NO_PLAIN_OPEN Message when there is a plain file named Eudora Folder in the system folder.
  1289. 7612 DEF_MWIDTH Message width when PREF_MWIDTH is not set.
  1290. 7613 UU_BAD_LENGTH Message when an incorrect line length is found in uuencoded data.
  1291. 7614 HEX_SIZE_PERCENT Eudora will decode a BinHex file if the message is at least this percent of the size the BinHex file reports, or...
  1292. 7615 HEX_SIZE_THRESH if the message is less than this size.
  1293. 7616 BIG_MESSAGE Size limit for Skip Big Messages.
  1294. 7619 SPLIT_THRESH Size at which a message must be split.  Must satisfy FRAGMENT_SIZE<SPLIT_THRESH<32K
  1295. 7620 BOX_SIZE_FMT Size display format for mailbox windows.
  1296. 7801 BOX_SIZE_SIZE size of mailbox size display
  1297. 7804 BOX_SIZE_FONT_SIZE Size of font for mailbox size box.
  1298. 7805 ALIAS_VERBOTEN Characters forbidden in aliases.
  1299. 7813 BCC_ONLY Put in the To: field if a message has only Bcc:'s.
  1300. 7817 FWD_TRAIL String to put after forwarded text
  1301. 7818 REP_SEND_ATTR Reply to sender attribution
  1302. 7820 WAIT_FOR_START_AE # seconds to wait for ODoc, OApp, or PDoc
  1303. 8008 DESK_LEFT_STRIP extra desktop margin on the left when creating a window
  1304. 8009 DESK_RIGHT_STRIP ditto, but on the right
  1305. 8010 DESK_BOTTOM_STRIP ditto, but on the bottom
  1306. 8011 DESK_TOP_STRIP ditto, but on the top
  1307. 8012 SENDER Sender: header
  1308. 8014 ME Nicknames for sender.
  1309. 8015 REPLY text for normal reply
  1310. 8016 REPLY_ALL text if PREF_REPLY_ALL is set
  1311. 8203 NEVER_WARN Never warn the user of mail to be sent this many hours into the future
  1312. 8204 BIG_MESSAGE_FRAGMENT # of body lines of a skipped big message to download
  1313. 8205 ATTRIBUTION # attribution line; from, date, subject
  1314. 8206 ALIAS_N_LABEL Label for private notes section of nicknames
  1315. 8207 LOCAL_PORT Port from which Eudora connects; leave at 0
  1316. 8216 PW_PORT Port for password-change protocol
  1317. 8402 QUOTE_LIMIT Wrap limit for quoted sections
  1318. 8403 FINGER_PORT Port for finger requests
  1319. 8404 PRIORITY_FMT Format for the priority header.
  1320. 8406 COMPACT_WASTE_PER Percentage of waste space that triggers a compaction
  1321. 8407 COMPACT_FREE_PER Percentage of free disk space that triggers a compaction
  1322. 8410 FWD_QUOTE Quote character for forwards
  1323. 8604 DATE_SUM_FMT Format for date summaries; time, date, timezone
  1324. 8610 MESS_TITLE_PLUG Message titling string; 0 mailbox, 1 sender, 2 date, 3 subject.
  1325. 8613 PH_RETURN Return clause for ph.  Should be empty or begin with space.
  1326. 8614 SCROLL_THROTTLE Number of ticks between page scrolls.
  1327. 8619 MIME_MULTIPART Don't touch.
  1328. 8620 MIME_TEXT Don't touch.
  1329. 8801 MIME_MESSAGE Don't touch.
  1330. 8802 MIME_BASE64 Don't touch.
  1331. 8803 MIME_APPLICATION Don't touch
  1332. 8804 MIME_APPLEFILE Don't touch
  1333. 8805 MIME_APPLEDOUBLE Don't touch
  1334. 8806 MIME_DIGEST Don't touch
  1335. 8807 MIME_BINHEX Don't touch
  1336. 8808 MIME_ISO_LATIN1 Don't touch
  1337. 8809 MIME_PARTIAL Don't touch
  1338. 8812 NAME Don't touch
  1339. 9002 MAX_SMTP_LINE Maximum line to send to SMTP
  1340. 9006 MIME_BINARY Don't touch.
  1341. 9207 POSTSCRIPT Don't touch.
  1342. 9208 PS_MAGIC Magic bytes for PostScript file
  1343. 9216 MIME_BINHEX2 Don't touch
  1344. 5501 ALT_SIG Name of alternate signature file.
  1345. 5502 HEADER_LABEL Name of header box in filters window.
  1346. 5503 MATCH_LABEL Name of Match: section of filters window.
  1347. 5504 ACTION_LABEL Name of Action: section of filters window.
  1348. 5505 MAKE_SUBJECT_LABEL Label for Make Subject
  1349. 5511 SUBJ_REPLACE Replacement metastring for subject area of filters window.
  1350. 5515 FILT_XFER Label of transfer to button.
  1351. 5516 FILT_COPY Label of copy to button.
  1352. 5703 AE_TIMEOUT_TICKS Apple Event timeout, in ticks.
  1353. 5707 STATIONERY Name of default stationery file.
  1354. 5709 X_UUENCODE Label to use for uuencoded body parts.
  1355. 5710 UUDECODE_FMT Don't touch.
  1356. 5714 RRT_FMT Return-receipt header.
  1357. 5910 FILTER_ANY Magic string for filter to match any header.
  1358. 5911 FILTER_BODY Magic string for filter to match body of mail.
  1359. </text>
  1360.     </content>
  1361.     <name></name>
  1362.     <script></script>
  1363. </card>
  1364.  
  1365.  
  1366. card_12664.xml
  1367. <?xml version="1.0" encoding="utf-8" ?>
  1368. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1369. <card>
  1370.     <id>12664</id>
  1371.     <filler1>0</filler1>
  1372.     <cantDelete> <false /> </cantDelete>
  1373.     <showPict> <true /> </showPict>
  1374.     <dontSearch> <false /> </dontSearch>
  1375.     <owner>2620</owner>
  1376.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1377.     <part>
  1378.         <id>2</id>
  1379.         <type>field</type>
  1380.         <visible> <true /> </visible>
  1381.         <dontWrap> <true /> </dontWrap>
  1382.         <dontSearch> <false /> </dontSearch>
  1383.         <sharedText> <false /> </sharedText>
  1384.         <fixedLineHeight> <false /> </fixedLineHeight>
  1385.         <autoTab> <false /> </autoTab>
  1386.         <lockText> <false /> </lockText>
  1387.         <rect>
  1388.             <left>78</left>
  1389.             <top>123</top>
  1390.             <right>487</right>
  1391.             <bottom>198</bottom>
  1392.         </rect>
  1393.         <style>scrolling</style>
  1394.         <autoSelect> <false /> </autoSelect>
  1395.         <showLines> <false /> </showLines>
  1396.         <wideMargins> <false /> </wideMargins>
  1397.         <multipleLines> <false /> </multipleLines>
  1398.         <reservedFamily> 0 </reservedFamily>
  1399.         <titleWidth>0</titleWidth>
  1400.         <icon>0</icon>
  1401.         <textAlign>left</textAlign>
  1402.         <font>Geneva</font>
  1403.         <textSize>9</textSize>
  1404.         <textStyle>plain</textStyle>
  1405.         <textHeight>12</textHeight>
  1406.         <name></name>
  1407.         <script></script>
  1408.     </part>
  1409.     <part>
  1410.         <id>5</id>
  1411.         <type>button</type>
  1412.         <visible> <true /> </visible>
  1413.         <reserved5> 0 </reserved5>
  1414.         <reserved4> 0 </reserved4>
  1415.         <reserved3> 0 </reserved3>
  1416.         <reserved2> 0 </reserved2>
  1417.         <reserved1> 0 </reserved1>
  1418.         <enabled> <true /> </enabled>
  1419.         <rect>
  1420.             <left>320</left>
  1421.             <top>259</top>
  1422.             <right>485</right>
  1423.             <bottom>281</bottom>
  1424.         </rect>
  1425.         <style>roundrect</style>
  1426.         <showName> <true /> </showName>
  1427.         <highlight> <false /> </highlight>
  1428.         <autoHighlight> <false /> </autoHighlight>
  1429.         <sharedHighlight> <true /> </sharedHighlight>
  1430.         <family>0</family>
  1431.         <titleWidth>0</titleWidth>
  1432.         <icon>0</icon>
  1433.         <textAlign>center</textAlign>
  1434.         <font>Chicago</font>
  1435.         <textSize>12</textSize>
  1436.         <textStyle>plain</textStyle>
  1437.         <name>Other Customizations</name>
  1438.         <script>on mouseUp
  1439. go to card id 11322
  1440. end mouseUp
  1441.  
  1442. </script>
  1443.     </part>
  1444.     <content>
  1445.         <layer>background</layer>
  1446.         <id>2</id>
  1447.         <text>Where does Eudora keep my preferences?</text>
  1448.     </content>
  1449.     <content>
  1450.         <layer>background</layer>
  1451.         <id>3</id>
  1452.         <text><span class="style1">ost things are kept in STR# resource id 1000 in your Eudora Settings file.  The strings mean the following things:</span><span class="style9">
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460. You can use ResEdit to change these.  Preferences marked with ‚Äú*‚Äù can only be set with ResEdit; there is no way to set them from within Eudora.  Settings ending with a ‚Äú?‚Äù are on if there is a ‚Äúy‚Äù in them.  Pay careful attention-some of these are expressed opposite to the way they are expressed in the ‚ÄúSwitches...‚Äù dialog.
  1461.  
  1462.  
  1463. </span></text>
  1464.     </content>
  1465.     <content>
  1466.         <layer>card</layer>
  1467.         <id>2</id>
  1468.         <text> 1  Font to use in windows 
  1469.  2  Size of font to use in windows
  1470.  3  POP Account
  1471.  4  SMTP Server
  1472.  5  Return address
  1473.  6  Mail check interval
  1474.  7  Word wrap?
  1475.  8  Show all headers?
  1476.  9  Guess Paragraphs?
  1477. 10    TEXT file creator
  1478. 11    TEXT file creator name
  1479. 12    Reserved
  1480. 13    Send on Check?
  1481. 14    Zoom Windows?
  1482. 15    Auto Ok?
  1483. 16    Empty Trash on Quit?
  1484. 17    Not used
  1485. 18    Leave Mail On Server?
  1486. 19    Keep Copies?
  1487. 20    Get attention by an Alert?
  1488. 21    Get attention by a Sound?
  1489. 22    Include Signature?
  1490. 23    Ph Server
  1491. 24    Save Password?
  1492. 25    Immediate Send?
  1493. 26    BinHex plain TEXT files?
  1494. 27    Use Comm Toolbox?
  1495. 28    Tabs in Body?
  1496. 29    Font to use when printing.
  1497. 30    Size of font to use in printing.
  1498. 31    Password (if Save Password is on)
  1499. 32    Icon Bar?
  1500. 33    Don't get attention by flashing menu icon?
  1501. 34    Don't show progress?
  1502. 35    Easy Delete?
  1503. 36    Mailbox superclose?
  1504. 37    Case sensitive find?
  1505. 38    Live nicknames?
  1506. 39    Message width?
  1507. 40    Message height?
  1508. 41    Include headers (Save As)?
  1509. 42    Switch messages with plain arrows?
  1510. 43    Attachments folder name
  1511. 44    Use Attachments folder?
  1512. 45    Attachments volume and dirID
  1513. 46    Don't switch messages with command arrows?
  1514. 47    Skip big messages?
  1515. 48    Reserved 
  1516. 49    Reserved
  1517. 50    Find in summaries only?
  1518. 51    Do not open In box when mail arrives?
  1519. 52    Reserved
  1520. 53* Don't check for out of date toc's?
  1521. 54    Reserved
  1522. 55    Reply to all?
  1523. 56    Don't include self?
  1524. 57* Use APOP command?
  1525. 58* Number of monitor to use for new windows
  1526. 59* Do not write toc file after each message is added
  1527. 60  Reserved
  1528. 61    Dialup username
  1529. 62    Dialup password (if Save Password is on)
  1530. 63-70    Reserved
  1531. 71* Logging.  Sum of the numbers of the things you want logged:
  1532.    1 Who you send mail to and when
  1533.    2 Who you receive mail from and when
  1534.    4 Navigation
  1535.    8 Alert dialogs
  1536.   16 Progress window messages
  1537.   32 All bytes transferred in and out of Eudora
  1538. 72* Do not pay attention to X-Priority headers on incoming mail.
  1539. 73* Do not pay attention to priority or original when composing reply.
  1540. 74  Use Finger instead of Ph?
  1541. 75  Default view translation table.
  1542. 76  Default send translation table.
  1543. 77  Real name
  1544. 78* Do not use Easy Open?
  1545. 79* Do not draw lines in mailbox windows?
  1546. 80* Ignore illegal characters in BinHex files?
  1547. 81*    Use the POP3 "last" command to find unread mail?
  1548. 82*    Max # of messages to fetch in one transaction.
  1549. 83*  For RadioMail
  1550. 84    Offline?
  1551. 85    Do not fix curly quotes?
  1552. 86    Tidy attachment folder?
  1553. 87*  Use the "xtnd xmit" extended POP3 command to send mail?
  1554. 88    Transliteration table for ph responses
  1555. 89    Transliteration table for ph queries
  1556. 90    Type of outgoing attachment to use (0 Double, 1 Single, 2 BinHex, 3 uuencode)
  1557. 91  Is Eudora allowed to use Quoted-Printable encoding?
  1558. </text>
  1559.     </content>
  1560.     <name></name>
  1561.     <script></script>
  1562. </card>
  1563.  
  1564.  
  1565. card_4920.xml
  1566. <?xml version="1.0" encoding="utf-8" ?>
  1567. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1568. <card>
  1569.     <id>4920</id>
  1570.     <filler1>0</filler1>
  1571.     <cantDelete> <false /> </cantDelete>
  1572.     <showPict> <true /> </showPict>
  1573.     <dontSearch> <false /> </dontSearch>
  1574.     <owner>2620</owner>
  1575.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1576.     <part>
  1577.         <id>1</id>
  1578.         <type>button</type>
  1579.         <visible> <true /> </visible>
  1580.         <reserved5> 0 </reserved5>
  1581.         <reserved4> 0 </reserved4>
  1582.         <reserved3> 0 </reserved3>
  1583.         <reserved2> 0 </reserved2>
  1584.         <reserved1> 0 </reserved1>
  1585.         <enabled> <true /> </enabled>
  1586.         <rect>
  1587.             <left>375</left>
  1588.             <top>262</top>
  1589.             <right>475</right>
  1590.             <bottom>284</bottom>
  1591.         </rect>
  1592.         <style>roundrect</style>
  1593.         <showName> <true /> </showName>
  1594.         <highlight> <false /> </highlight>
  1595.         <autoHighlight> <false /> </autoHighlight>
  1596.         <sharedHighlight> <true /> </sharedHighlight>
  1597.         <family>0</family>
  1598.         <titleWidth>0</titleWidth>
  1599.         <icon>0</icon>
  1600.         <textAlign>center</textAlign>
  1601.         <font>Chicago</font>
  1602.         <textSize>12</textSize>
  1603.         <textStyle>plain</textStyle>
  1604.         <name>Resource List</name>
  1605.         <script>on mouseUp
  1606. go to card id 11322
  1607. end mouseUp</script>
  1608.     </part>
  1609.     <content>
  1610.         <layer>background</layer>
  1611.         <id>2</id>
  1612.         <text>Is there anything I should know about customizing Eudora with ResEdit?</text>
  1613.     </content>
  1614.     <content>
  1615.         <layer>background</layer>
  1616.         <id>3</id>
  1617.         <text><span class="style3">he best way to modify Eudora resources is to copy them to your Eudora Settings file, or a file of type 'rsrc' and creator 'CSOm' in your Preferences folder.  To override a string with an 'STR '  resource, put your new string in an 'STR ' resource with an id that's the sum of the STR# id and the string number of the string you wish to change.
  1618.  
  1619. If you do any customization, be careful when you upgrade to new versions of Eudora; strings sometimes move.  Make note of what you change, and verify that still do what you want.  I will try to warn you when I make such changes.</span></text>
  1620.     </content>
  1621.     <name></name>
  1622.     <script></script>
  1623. </card>
  1624.  
  1625.  
  1626. card_6265.xml
  1627. <?xml version="1.0" encoding="utf-8" ?>
  1628. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1629. <card>
  1630.     <id>6265</id>
  1631.     <filler1>0</filler1>
  1632.     <cantDelete> <false /> </cantDelete>
  1633.     <showPict> <true /> </showPict>
  1634.     <dontSearch> <false /> </dontSearch>
  1635.     <owner>2620</owner>
  1636.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1637.     <content>
  1638.         <layer>background</layer>
  1639.         <id>2</id>
  1640.         <text>I want to move around in Messages without using the mouse, but I don't have an extended keyboard.  Are there any shortcuts?</text>
  1641.     </content>
  1642.     <content>
  1643.         <layer>background</layer>
  1644.         <id>3</id>
  1645.         <text>If you have a "Control" key, you can use the following:
  1646.  
  1647. Control-A: Like "Home" on the Extended Keyboard
  1648. Control-D: "End"
  1649. Control-K: "Page Up"
  1650. Control-L: "Page Down"
  1651.  
  1652. Before you send the ATP after me, I want you to know that this feature is more a result of Apple's keybaord design than my programming.</text>
  1653.     </content>
  1654.     <name></name>
  1655.     <script></script>
  1656. </card>
  1657.  
  1658.  
  1659. card_2446.xml
  1660. <?xml version="1.0" encoding="utf-8" ?>
  1661. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1662. <card>
  1663.     <id>2446</id>
  1664.     <filler1>0</filler1>
  1665.     <cantDelete> <false /> </cantDelete>
  1666.     <showPict> <true /> </showPict>
  1667.     <dontSearch> <false /> </dontSearch>
  1668.     <owner>2620</owner>
  1669.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1670.     <part>
  1671.         <id>1</id>
  1672.         <type>field</type>
  1673.         <visible> <true /> </visible>
  1674.         <dontWrap> <false /> </dontWrap>
  1675.         <dontSearch> <false /> </dontSearch>
  1676.         <sharedText> <false /> </sharedText>
  1677.         <fixedLineHeight> <false /> </fixedLineHeight>
  1678.         <autoTab> <false /> </autoTab>
  1679.         <lockText> <false /> </lockText>
  1680.         <rect>
  1681.             <left>82</left>
  1682.             <top>194</top>
  1683.             <right>483</right>
  1684.             <bottom>282</bottom>
  1685.         </rect>
  1686.         <style>scrolling</style>
  1687.         <autoSelect> <false /> </autoSelect>
  1688.         <showLines> <false /> </showLines>
  1689.         <wideMargins> <false /> </wideMargins>
  1690.         <multipleLines> <false /> </multipleLines>
  1691.         <reservedFamily> 0 </reservedFamily>
  1692.         <titleWidth>0</titleWidth>
  1693.         <icon>0</icon>
  1694.         <textAlign>left</textAlign>
  1695.         <font>Geneva</font>
  1696.         <textSize>9</textSize>
  1697.         <textStyle>plain</textStyle>
  1698.         <textHeight>12</textHeight>
  1699.         <name></name>
  1700.         <script></script>
  1701.     </part>
  1702.     <content>
  1703.         <layer>background</layer>
  1704.         <id>2</id>
  1705.         <text>What's ph?</text>
  1706.     </content>
  1707.     <content>
  1708.         <layer>background</layer>
  1709.         <id>3</id>
  1710.         <text><span class="style3">h is UIUC's electronic phone book.  If you're interested in installing it at your site, fetch uxc.cso.uiuc.edu:pub/qi.tar.Z.  You will need a UNIX guru to get it installed.
  1711.  
  1712. If neither 'finger' nor 'ph' tips your bucket, you may be able to write a gateway from the directory of your choice to ph.  Here's a sample:</span></text>
  1713.     </content>
  1714.     <content>
  1715.         <layer>card</layer>
  1716.         <id>1</id>
  1717.         <text>#!/usr/local/bin/perl
  1718. #
  1719. # Written by Steve Dorner, UIUC, 1991.
  1720. #
  1721. # This program looks like qi to Eudora's ph window, but really just does
  1722. # finger.
  1723. #
  1724. # You'll need this in /etc/services:
  1725. #    ns    105/tcp    
  1726. # And this in /etc/inetd.conf:
  1727. #    ns    stream    tcp    nowait    nobody    /<path>/fingerqi fingerqi
  1728. # (you must of course make <path> be the path to this script.
  1729.  
  1730. #
  1731. # no buffering, please
  1732. $| = 1;
  1733.  
  1734. #
  1735. # grab name, strip lf, metachars
  1736. $_ = <>;
  1737. chop;
  1738. tr/<|>;`//d;
  1739.  
  1740. #
  1741. # execute finger
  1742. if (!open(FINGER,"/usr/ucb/finger " . $_ . "|"))
  1743. {
  1744.   print "500:Botched!\n";
  1745.   die;
  1746. }
  1747.  
  1748. #
  1749. # pass the response
  1750. $curNum = 0;
  1751. while (<FINGER>)
  1752. {
  1753.   chop;
  1754.   if (/^Login name:/) {$curNum++;}
  1755.   printf "-200:" . $curNum . ": ". $_ . "\n";
  1756. }
  1757. print "200:Ok.\n";
  1758.  
  1759. #
  1760. # read and respond to Eudora's quit
  1761. <>;
  1762. print "200:Bye.\n";
  1763. </text>
  1764.     </content>
  1765.     <name></name>
  1766.     <script></script>
  1767. </card>
  1768.  
  1769.  
  1770. card_13579.xml
  1771. <?xml version="1.0" encoding="utf-8" ?>
  1772. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  1773. <card>
  1774.     <id>13579</id>
  1775.     <filler1>0</filler1>
  1776.     <cantDelete> <false /> </cantDelete>
  1777.     <showPict> <true /> </showPict>
  1778.     <dontSearch> <false /> </dontSearch>
  1779.     <owner>2620</owner>
  1780.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  1781.     <part>
  1782.         <id>1</id>
  1783.         <type>field</type>
  1784.         <visible> <true /> </visible>
  1785.         <dontWrap> <false /> </dontWrap>
  1786.         <dontSearch> <false /> </dontSearch>
  1787.         <sharedText> <false /> </sharedText>
  1788.         <fixedLineHeight> <false /> </fixedLineHeight>
  1789.         <autoTab> <false /> </autoTab>
  1790.         <lockText> <false /> </lockText>
  1791.         <rect>
  1792.             <left>79</left>
  1793.             <top>125</top>
  1794.             <right>484</right>
  1795.             <bottom>277</bottom>
  1796.         </rect>
  1797.         <style>scrolling</style>
  1798.         <autoSelect> <false /> </autoSelect>
  1799.         <showLines> <false /> </showLines>
  1800.         <wideMargins> <false /> </wideMargins>
  1801.         <multipleLines> <false /> </multipleLines>
  1802.         <reservedFamily> 0 </reservedFamily>
  1803.         <titleWidth>0</titleWidth>
  1804.         <icon>0</icon>
  1805.         <textAlign>left</textAlign>
  1806.         <font>Geneva</font>
  1807.         <textSize>9</textSize>
  1808.         <textStyle>plain</textStyle>
  1809.         <textHeight>12</textHeight>
  1810.         <name></name>
  1811.         <script></script>
  1812.     </part>
  1813.     <content>
  1814.         <layer>background</layer>
  1815.         <id>2</id>
  1816.         <text>What other phone books are available?</text>
  1817.     </content>
  1818.     <content>
  1819.         <layer>background</layer>
  1820.         <id>3</id>
  1821.         <text>Well, there's one by Dan Kegel at JPL.  I don't know much about it, but you could give it a try.
  1822. </text>
  1823.     </content>
  1824.     <content>
  1825.         <layer>card</layer>
  1826.         <id>1</id>
  1827.         <text>Subject: horton 1.6: automatic e-mail directory daemon & whoisd server
  1828. Followup-To: comp.mail.misc
  1829. Archive-name: horton1.6
  1830. Submitted-by: dank@blacks.jpl.nasa.gov
  1831.  
  1832. Horton 1.6 was posted to alt.sources on Feb 23 1992.
  1833.  
  1834. Horton is a whois server that lets network administrators provide their 
  1835. users with a constantly updated e-mail directory with minimal effort.
  1836. A single instance of Horton can service several thousand mailhosts.
  1837.  
  1838. Horton creates a database of all active e-mail accounts in your domain, 
  1839. and provide access to the database via the whois protocol.
  1840. Since Horton uses Finger to gather its information, no work is required on
  1841. the part of other system administrators.  (In this respect, it is rather
  1842. like Archie, the FTP directory server.)
  1843. You don't even have to tell Horton which hosts to poll; it figures that out
  1844. itself using nslookup.  Only hosts that support Finger and SMTP, and can route
  1845. mail back to your host, are polled.
  1846.  
  1847. It has been tested at a university (thanks, Heather!) and at a large 
  1848. government research lab on Sun4's running SunOS 4.1 and 4.1.1, and accepts 
  1849. Finger output from many flavors of fingerd.
  1850.  
  1851. - Dan Kegel (dank@blacks.jpl.nasa.gov)
  1852.  
  1853. ::::::::::::::
  1854. pgms/horton/README
  1855. ::::::::::::::
  1856. horton - an e-mail directory gopher and whois server
  1857. @(#)README    1.9 2/22/92
  1858.  
  1859. DESCRIPTION
  1860.     Horton was written to provide an automatic way of creating
  1861.     a directory of electronic mail addresses.  Users can
  1862.     look up e-mail addresses knowing only a fragment of
  1863.     the name or username of the person in question, with
  1864.     the command
  1865.     whois -h horton_server search_key
  1866.     where
  1867.     horton_server is the name of the computer running Horton
  1868.     search_key  is the fragment of the name
  1869.     All people whose name or username match the pattern
  1870.     are listed, one per line.
  1871.  
  1872. IMPLEMENTATION
  1873.     Horton simply runs 'finger @host' on a predetermined set of
  1874.     computers, and keep track of who logs in where.
  1875.     It works with the finger services provided by NeXTs, Suns,
  1876.     and even VMS systems running Multinet.
  1877.  
  1878.     It also runs 'finger user' on all the users of the local
  1879.     computer; this is meant to catch users who never log 
  1880.     in but rather check their mail with Eudora via POPmail.
  1881.     (POPmail has to be modified to update /var/adm/lastlog for
  1882.     this to have any effect.)
  1883.  
  1884.     A hacked version of finger which times out after ten seconds
  1885.     is used to avoid locking up when probing unknown hosts.
  1886.  
  1887.     monthly.sh is run manually during startup to determine which
  1888.     hosts should go in hosts.poll, and monthly thereafter, e.g.
  1889.     by placing the line
  1890.     1 1 1 * * /bin/nice /etc/horton/monthly.sh podunk.edu /etc/horton >/dev/null 2>&1
  1891.     in the pseudouser's crontab.
  1892.     It takes two arguments: the domain name, and the working directory.
  1893.  
  1894.     hourly.sh is a c-shell script to be run periodically, e.g.
  1895.     by placing the line
  1896.     12 8-17 * * 1-5 /bin/nice /etc/horton/hourly.sh podunk.edu /etc/horton >/dev/null 2>&1
  1897.     in the pseudouser's crontab.
  1898.     It takes two arguments: the domain name, and the working directory.
  1899.  
  1900.     in.whoisd is a server that accepts search patterns from
  1901.     clients running the program 'whois', and runs egrep
  1902.     on the database file.  It is invoked from /etc/inetd.conf, e.g.
  1903.     whois    stream    tcp    nowait    nobody    /etc/horton/in.whoisd /etc/horton/hourly.out
  1904.     It takes one argument: the data file to search.
  1905.  
  1906. INPUT FILES
  1907.     hosts.xlat must exist and must be nonempty.  If
  1908.     you have clusters of computers with different hostnames 
  1909.     but which share the same hostname for purposes of e-mail 
  1910.     (e.g. if any computer remote mounts another computer's
  1911.     /var/spool/mail directory).
  1912.     The format is one computer per line; the 1st field
  1913.     is the computer's hostname, the 2nd field is the
  1914.     hostname of the computer's e-mail server.  For example,
  1915.     if mammoth and fsw1 are servers for their ilk,
  1916.     antelope mammoth
  1917.     cheetah mammoth
  1918.     fsw2 fsw1
  1919.     fsw3 fsw1
  1920.     If you have no need for this file, set it to never match anything, e.g.
  1921.     dummy_host dummy_mailhost
  1922.  
  1923.     hosts.exclude must exist and must be nonempty.  Use this file
  1924.     to exclude hosts that don't want to be disturbed in any way
  1925.     by automatic fingering or mail-probing.  It can contain
  1926.     hostnames or IP addresses.  These are matched with fgrep,
  1927.     so partial names or addresses will act like wildcards.
  1928.     Careful, or you may exclude more hosts than you intend.
  1929.     The format is one pattern per line:
  1930.     scratchy
  1931.     128.149.77.
  1932.     128.149.80.5
  1933.     If you have no need for this file, set it to never match anything, e.g.
  1934.     dummy_host
  1935.  
  1936. OUTPUT FILES
  1937.     hosts.poll lists the hosts to query with finger,
  1938.     one per line.  For instance,
  1939.     cheetah
  1940.     mammoth
  1941.     antelope
  1942.     fsw1
  1943.     fsw2
  1944.     fsw3
  1945.     pathos
  1946.     It is updated by monthly.sh, but you can add lines to
  1947.     it manually, too.
  1948.  
  1949.     The revolving output data file is hourly.dat, which is in the
  1950.     format
  1951.     user@host    full name    last date logged in
  1952.     where the columns are separated by tabs.
  1953.     It is both read and written by hourly.sh.
  1954.  
  1955.     The same data is placed in hourly.out, but with tabs
  1956.     expanded to spaces.
  1957.     It is written by hourly.sh, and read by in.whoisd.
  1958.  
  1959. INSTALLATION
  1960.     1. As root, create a pseudouser (e.g. horton) to run monthly.sh.
  1961.        Copy dot.plan to the pseudouser's home directory as .plan.
  1962.        Edit the .plan file to reflect your TELEPHONE_NUMBER, E-MAIL-ADR,
  1963.        and the server's HOSTNAME.
  1964.        (When anxious sysops try to figure out why their machine is
  1965.        being finger'd and mail'd periodically by this strange user,
  1966.        the .plan file will explain the situation to them, and
  1967.        tell them whom to contact.)
  1968.        If pseudouser is not horton, edit the .plan file to reflect the name.
  1969.        Choose a working directory, perhaps /etc/horton or /home/horton/etc.
  1970.        Pseudouser must own this directory and its contents.
  1971.        Edit Makefile to set value of DIR to the working directory.
  1972.        If your host is a POPmail host, you may wish to activate
  1973.        the 'local users' loop in hourly.sh.
  1974.     2. Compile the software with 'make', then 'make install', and 'make clean'.
  1975.     3. Run monthly.sh to initialize hosts.poll.
  1976.        Verify that hosts.poll has good hosts in it.
  1977.     4. Run hourly.sh to initialize hourly.out.
  1978.        Verify that hourly.out has good usernames and addresses in it.
  1979.     5. As root, Add line to /etc/inetd.conf as above, substituting your net's
  1980.        domain name for podunk.edu, and your chosen directory for /etc/horton.
  1981.        Cause it to take effect by sending inetd a kill -HUP.
  1982.     6. Run whois -h localhost @ to verify that daemon is handling requests.
  1983.     7. Add lines to invoke hourly.sh and monthly.sh as above to 
  1984.        pseudouser's crontab with crontab -e horton, substituting your net's
  1985.        domain name for podunk.edu, and your chosen directory for /etc/horton.
  1986.     8. If any sysops complain about Horton's incessant fingering, and wish
  1987.        to be excluded from the directory, add their name or internet
  1988.        address to hosts.exclude, and delete them from hosts.poll.
  1989.     9. If some hosts are e-mail clients of another host, and you wish to 
  1990.        reduce the ambiguity of the directory, add clientname-servername
  1991.        pairs to hosts.xlat.
  1992.  
  1993. BUGS
  1994.     Entries are never purged from hourly.out.
  1995.     Works with the finger output I've seen, but might not work
  1996.     with other finger daemons.
  1997.     Probably relies on something found only on Suns.
  1998.  
  1999.     Relies on DNS being installed; if you're not using the DNS,
  2000.     you will have to rewrite ls_hosts.sh or bypass monthly.sh entirely
  2001.     by maintaining hosts.poll manually.
  2002.  
  2003.     Relies on domain name always being the same case!  This can
  2004.     cause the output file to contain entries that are not stripped
  2005.     of the domain name.
  2006.  
  2007. AUTHOR
  2008.     Dan Kegel (dank@blacks.jpl.nasa.gov)
  2009. ::::::::::::::
  2010. pgms/horton/dot.plan
  2011. ::::::::::::::
  2012. Horton is the keeper of the whois database on HOSTNAME.
  2013. Whois is an e-mail directory service.
  2014.  
  2015. To look up somebody's e-mail address, type
  2016.     whois -h HOSTNAME search_key
  2017. On VMS systems with Multinet TCP/IP, type
  2018.     whois /host=HOSTNAME search_key
  2019. A Macintosh MacTCP version of finger was written by Peter Lewis,
  2020. peter@cujo.curtin.edu.au, and should be available at an FTP site near you.
  2021.  
  2022. The search key can be a whole name, or just a fragment of a name.
  2023. If there are no matches, nothing will be printed; try a shorter
  2024. fragment.
  2025.  
  2026. When Horton wants to update its idea of what hosts should be 
  2027. polled to generate the whois database, it runs a probe script 
  2028. which fingers and sends mail thru each site; the sites that 
  2029. respond to both requests are placed in the list of sites to poll.
  2030.  
  2031. To prevent Horton from probing your machine in any way, or to
  2032. report any problems, send a message to E-MAIL-ADR, or call TELEPHONE_NUMBER.  
  2033. Do not send mail to Horton, it will be discarded.
  2034.  
  2035.  
  2036. </text>
  2037.     </content>
  2038.     <name></name>
  2039.     <script></script>
  2040. </card>
  2041.  
  2042.  
  2043. card_13830.xml
  2044. <?xml version="1.0" encoding="utf-8" ?>
  2045. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2046. <card>
  2047.     <id>13830</id>
  2048.     <filler1>0</filler1>
  2049.     <cantDelete> <false /> </cantDelete>
  2050.     <showPict> <true /> </showPict>
  2051.     <dontSearch> <false /> </dontSearch>
  2052.     <owner>2620</owner>
  2053.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2054.     <content>
  2055.         <layer>background</layer>
  2056.         <id>2</id>
  2057.         <text>How can I add headers that don't appear in outgoing mail windows to mail I send?</text>
  2058.     </content>
  2059.     <content>
  2060.         <layer>background</layer>
  2061.         <id>3</id>
  2062.         <text>If you want to add headers to all your outgoing mail, you can put them in STR# resource id 4400.  Eudora will send each string in this resource before it sends the real headers.
  2063.  
  2064. Suppose, for example, you want everyone to know you use Eudora, and you don't like Broccoli.  You would put two strings in the resource:
  2065.  
  2066. X-Mailer: Eudora
  2067. X-HatedFood: Broccoli
  2068.  
  2069. Eudora will add returns for you; don't put them in the resource.</text>
  2070.     </content>
  2071.     <name></name>
  2072.     <script></script>
  2073. </card>
  2074.  
  2075.  
  2076. card_13554.xml
  2077. <?xml version="1.0" encoding="utf-8" ?>
  2078. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2079. <card>
  2080.     <id>13554</id>
  2081.     <filler1>0</filler1>
  2082.     <cantDelete> <false /> </cantDelete>
  2083.     <showPict> <true /> </showPict>
  2084.     <dontSearch> <false /> </dontSearch>
  2085.     <owner>2620</owner>
  2086.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2087.     <content>
  2088.         <layer>background</layer>
  2089.         <id>2</id>
  2090.         <text>Will Eudora work with UUPC?</text>
  2091.     </content>
  2092.     <content>
  2093.         <layer>background</layer>
  2094.         <id>3</id>
  2095.         <text><span class="style3">es.
  2096. Put the full pathname of your maildrop, preceded by a !, in the POP Account:
  2097.  
  2098. !mac:uupcincoming:mail:dorner
  2099.  
  2100. In the SMTP Server field, put your mac's hostname, your UUCP relay's hostname, the full pathname of the UUCP spool directory, your username, and a four digit number, separated by !'s:
  2101.  
  2102. !yourmac!relay!mac:uupcoutgoing:!username!0000
  2103.  
  2104. For more info, see Appendix F of the Eudora Manual.</span></text>
  2105.     </content>
  2106.     <name></name>
  2107.     <script></script>
  2108. </card>
  2109.  
  2110.  
  2111. card_4192.xml
  2112. <?xml version="1.0" encoding="utf-8" ?>
  2113. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2114. <card>
  2115.     <id>4192</id>
  2116.     <filler1>0</filler1>
  2117.     <cantDelete> <false /> </cantDelete>
  2118.     <showPict> <true /> </showPict>
  2119.     <dontSearch> <false /> </dontSearch>
  2120.     <owner>2620</owner>
  2121.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2122.     <part>
  2123.         <id>1</id>
  2124.         <type>button</type>
  2125.         <visible> <true /> </visible>
  2126.         <reserved5> 0 </reserved5>
  2127.         <reserved4> 0 </reserved4>
  2128.         <reserved3> 0 </reserved3>
  2129.         <reserved2> 0 </reserved2>
  2130.         <reserved1> 0 </reserved1>
  2131.         <enabled> <true /> </enabled>
  2132.         <rect>
  2133.             <left>310</left>
  2134.             <top>155</top>
  2135.             <right>410</right>
  2136.             <bottom>177</bottom>
  2137.         </rect>
  2138.         <style>roundrect</style>
  2139.         <showName> <true /> </showName>
  2140.         <highlight> <false /> </highlight>
  2141.         <autoHighlight> <false /> </autoHighlight>
  2142.         <sharedHighlight> <true /> </sharedHighlight>
  2143.         <family>0</family>
  2144.         <titleWidth>0</titleWidth>
  2145.         <icon>0</icon>
  2146.         <textAlign>center</textAlign>
  2147.         <font>Chicago</font>
  2148.         <textSize>12</textSize>
  2149.         <textStyle>plain</textStyle>
  2150.         <name>Resource List</name>
  2151.         <script>on mouseUp
  2152. go to card id 11322
  2153. find "DESK_LEFT_STRIP"
  2154. end mouseUp</script>
  2155.     </part>
  2156.     <content>
  2157.         <layer>background</layer>
  2158.         <id>2</id>
  2159.         <text>I sure wish Eudora's windows didn't cover the disk icons and the trash.  Is there anything I can do?</text>
  2160.     </content>
  2161.     <content>
  2162.         <layer>background</layer>
  2163.         <id>3</id>
  2164.         <text>Well, you could by a NeXT.
  2165.  
  2166. Short of that, look for  DESK in the resource list.</text>
  2167.     </content>
  2168.     <name></name>
  2169.     <script></script>
  2170. </card>
  2171.  
  2172.  
  2173. card_4436.xml
  2174. <?xml version="1.0" encoding="utf-8" ?>
  2175. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2176. <card>
  2177.     <id>4436</id>
  2178.     <filler1>0</filler1>
  2179.     <cantDelete> <false /> </cantDelete>
  2180.     <showPict> <true /> </showPict>
  2181.     <dontSearch> <false /> </dontSearch>
  2182.     <owner>2620</owner>
  2183.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2184.     <content>
  2185.         <layer>background</layer>
  2186.         <id>2</id>
  2187.         <text>My POP server says "-ERR Maildrop lock busy" or somesuch crud.  What do I do?</text>
  2188.     </content>
  2189.     <content>
  2190.         <layer>background</layer>
  2191.         <id>3</id>
  2192.         <text><span class="style5">his happens when your POP server and your Macintosh lose their connection for some reason.  It's relatively easy to fix.  Login to your POP server system and type 'ps x'.  You'll see something like this:
  2193. </span><span class="style6">
  2194. % </span><span class="style7">ps x</span><span class="style6">
  2195.   PID TT STAT  TIME COMMAND
  2196. 15387 ?  IW    0:00 popper
  2197. 15494 qK S     0:01 -csh[dorner] (csh)
  2198. </span><span class="style5">
  2199. Now, type 'kill -9 theFirstNumberOnThePopperLine':
  2200. </span><span class="style6">
  2201. % </span><span class="style7">kill -9 15387</span><span class="style6">
  2202. </span><span class="style5">
  2203. That will fix the problem.  If your eyes are glassy now, show this to a UNIX guru.</span></text>
  2204.     </content>
  2205.     <name></name>
  2206.     <script></script>
  2207. </card>
  2208.  
  2209.  
  2210. card_4835.xml
  2211. <?xml version="1.0" encoding="utf-8" ?>
  2212. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2213. <card>
  2214.     <id>4835</id>
  2215.     <filler1>0</filler1>
  2216.     <cantDelete> <false /> </cantDelete>
  2217.     <showPict> <true /> </showPict>
  2218.     <dontSearch> <false /> </dontSearch>
  2219.     <owner>2620</owner>
  2220.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2221.     <content>
  2222.         <layer>background</layer>
  2223.         <id>2</id>
  2224.         <text>I'm trying to use Serial Eudora, and I keep getting "Serial Port in Use", even after I quit Eudora.</text>
  2225.     </content>
  2226.     <content>
  2227.         <layer>background</layer>
  2228.         <id>3</id>
  2229.         <text>You must use version 1.1 or later of the Apple Modem Tool, or use the Hayes Modem Tool.  Neither the PowerBook Modem Tool nor version 1.0 of the Apple Modem Tool will work with Eudora.
  2230. </text>
  2231.     </content>
  2232.     <name></name>
  2233.     <script></script>
  2234. </card>
  2235.  
  2236.  
  2237. card_7698.xml
  2238. <?xml version="1.0" encoding="utf-8" ?>
  2239. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2240. <card>
  2241.     <id>7698</id>
  2242.     <filler1>0</filler1>
  2243.     <cantDelete> <false /> </cantDelete>
  2244.     <showPict> <true /> </showPict>
  2245.     <dontSearch> <false /> </dontSearch>
  2246.     <owner>2620</owner>
  2247.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2248.     <content>
  2249.         <layer>background</layer>
  2250.         <id>2</id>
  2251.         <text>I'm trying to use Serial Eudora I can receive mail ok, but when I send it I get "Command unrecognized."</text>
  2252.     </content>
  2253.     <content>
  2254.         <layer>background</layer>
  2255.         <id>3</id>
  2256.         <text>You haven't gotten carriage return processing turned off on your dialin.  See appendix D of the Eudora manual.
  2257.  
  2258.  
  2259.  
  2260. </text>
  2261.     </content>
  2262.     <name></name>
  2263.     <script></script>
  2264. </card>
  2265.  
  2266.  
  2267. card_8079.xml
  2268. <?xml version="1.0" encoding="utf-8" ?>
  2269. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2270. <card>
  2271.     <id>8079</id>
  2272.     <filler1>0</filler1>
  2273.     <cantDelete> <false /> </cantDelete>
  2274.     <showPict> <true /> </showPict>
  2275.     <dontSearch> <false /> </dontSearch>
  2276.     <owner>2620</owner>
  2277.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2278.     <part>
  2279.         <id>1</id>
  2280.         <type>button</type>
  2281.         <visible> <true /> </visible>
  2282.         <reserved5> 0 </reserved5>
  2283.         <reserved4> 0 </reserved4>
  2284.         <reserved3> 0 </reserved3>
  2285.         <reserved2> 0 </reserved2>
  2286.         <reserved1> 0 </reserved1>
  2287.         <enabled> <true /> </enabled>
  2288.         <rect>
  2289.             <left>282</left>
  2290.             <top>163</top>
  2291.             <right>382</right>
  2292.             <bottom>185</bottom>
  2293.         </rect>
  2294.         <style>roundrect</style>
  2295.         <showName> <true /> </showName>
  2296.         <highlight> <false /> </highlight>
  2297.         <autoHighlight> <false /> </autoHighlight>
  2298.         <sharedHighlight> <true /> </sharedHighlight>
  2299.         <family>0</family>
  2300.         <titleWidth>0</titleWidth>
  2301.         <icon>0</icon>
  2302.         <textAlign>center</textAlign>
  2303.         <font>Chicago</font>
  2304.         <textSize>12</textSize>
  2305.         <textStyle>plain</textStyle>
  2306.         <name>What's SLIP?</name>
  2307.         <script>on mouseUp
  2308. go to card id 8403
  2309. end mouseUp
  2310.  
  2311. </script>
  2312.     </part>
  2313.     <content>
  2314.         <layer>background</layer>
  2315.         <id>2</id>
  2316.         <text>I'm trying to use Serial Eudora, and everything works except attachments; I usually get "Attachment corrupted; it was too short."</text>
  2317.     </content>
  2318.     <content>
  2319.         <layer>background</layer>
  2320.         <id>3</id>
  2321.         <text>You don't have flow control configured properly.
  2322.  
  2323. In general, if you don't have at least MNP-4 on your modems, you're not going to be able to do attachments with serial Eudora.
  2324.  
  2325. You might try SLIP instead.
  2326.  
  2327. </text>
  2328.     </content>
  2329.     <name></name>
  2330.     <script></script>
  2331. </card>
  2332.  
  2333.  
  2334. card_8696.xml
  2335. <?xml version="1.0" encoding="utf-8" ?>
  2336. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2337. <card>
  2338.     <id>8696</id>
  2339.     <filler1>0</filler1>
  2340.     <cantDelete> <false /> </cantDelete>
  2341.     <showPict> <true /> </showPict>
  2342.     <dontSearch> <false /> </dontSearch>
  2343.     <owner>2620</owner>
  2344.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2345.     <content>
  2346.         <layer>background</layer>
  2347.         <id>2</id>
  2348.         <text>I don't have any domain name servers.  What do I do?</text>
  2349.     </content>
  2350.     <content>
  2351.         <layer>background</layer>
  2352.         <id>3</id>
  2353.         <text>Use TeachText to create a file named "Hosts" in your System Folder.  In it, list you hostnames and their addresses:
  2354.  
  2355. stonetablet.oldfashioned.com A 198.143.4.1
  2356. outhouse.oldfashioned.com A 198.143.2
  2357. buggy.oldfashioned.com A 198.143.1.3
  2358.  
  2359.  
  2360. </text>
  2361.     </content>
  2362.     <name></name>
  2363.     <script></script>
  2364. </card>
  2365.  
  2366.  
  2367. card_8403.xml
  2368. <?xml version="1.0" encoding="utf-8" ?>
  2369. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2370. <card>
  2371.     <id>8403</id>
  2372.     <filler1>0</filler1>
  2373.     <cantDelete> <false /> </cantDelete>
  2374.     <showPict> <true /> </showPict>
  2375.     <dontSearch> <false /> </dontSearch>
  2376.     <owner>2620</owner>
  2377.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2378.     <content>
  2379.         <layer>background</layer>
  2380.         <id>2</id>
  2381.         <text>What's SLIP?</text>
  2382.     </content>
  2383.     <content>
  2384.         <layer>background</layer>
  2385.         <id>3</id>
  2386.         <text>SLIP stands for Serial Line IP; it lets MacTCP work over phone lines.  If your dialins support SLIP, it's a very nice thing to do; you can use Eudora, NCSA Telnet, Fetch, etc, just like you were connected directly to the Internet.
  2387.  
  2388. There are three flavors of SLIP for the Mac:
  2389.  
  2390. MacSLIP, $49.95 (info@hydepark.com)
  2391. VersaTerm, ~$90 (at any mailorder house)
  2392. InterSLIP, (info@intercon.com)
  2393. </text>
  2394.     </content>
  2395.     <name></name>
  2396.     <script></script>
  2397. </card>
  2398.  
  2399.  
  2400. card_8753.xml
  2401. <?xml version="1.0" encoding="utf-8" ?>
  2402. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2403. <card>
  2404.     <id>8753</id>
  2405.     <filler1>0</filler1>
  2406.     <cantDelete> <false /> </cantDelete>
  2407.     <showPict> <true /> </showPict>
  2408.     <dontSearch> <false /> </dontSearch>
  2409.     <owner>2620</owner>
  2410.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2411.     <content>
  2412.         <layer>background</layer>
  2413.         <id>2</id>
  2414.         <text>When I try to check mail, it says "Connection came up halfway then failed."</text>
  2415.     </content>
  2416.     <content>
  2417.         <layer>background</layer>
  2418.         <id>3</id>
  2419.         <text>You probably don't have a POP3 server installed.  For UNIX sites, try popper, available for anonymous ftp from ftp.cc.berkeley.edu.  If VMS is your affliction, you can try Multinet, or IUPOP3 from ftp.indiana.edu, /pub/vms/iupop3.  VM/CMS sufferers can try Charley Kline's popper port, which can be had from vmd.cso.uiuc.edu (cd to the "POPD" directory.</text>
  2420.     </content>
  2421.     <name></name>
  2422.     <script></script>
  2423. </card>
  2424.  
  2425.  
  2426. card_9180.xml
  2427. <?xml version="1.0" encoding="utf-8" ?>
  2428. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2429. <card>
  2430.     <id>9180</id>
  2431.     <filler1>0</filler1>
  2432.     <cantDelete> <false /> </cantDelete>
  2433.     <showPict> <true /> </showPict>
  2434.     <dontSearch> <false /> </dontSearch>
  2435.     <owner>2620</owner>
  2436.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2437.     <content>
  2438.         <layer>background</layer>
  2439.         <id>2</id>
  2440.         <text>My messages keep showing up without any headers.  I see ???@???, and I can't reply.  The mail looks fine on the server.</text>
  2441.     </content>
  2442.     <content>
  2443.         <layer>background</layer>
  2444.         <id>3</id>
  2445.         <text><span class="style1">here are two things I know of that can cause this.
  2446. VMS TGV Mulinet:
  2447. </span><span class="style9">Normally the SMTP headers normally in the the text of the VMS MAIL message and those are sent. You apparently have PMDF configured not to include those headers. There is a new flag that will be in documented for MultiNet 3.2  You can 
  2448.    $define/sys/exec multinet_pop3_flags  64
  2449. If you already have multinet_pop3_flags defined add 64 to the value. This will build headers from the VMS from line and not expect any SMTP  headers in the mail message.
  2450. </span><span class="style1">UNIX Elm:
  2451. </span><span class="style9">ELM has one option DONT_ADD_FROM in its configuration file. If that is defined (default) then no From: line shows up in the mail header and Eudora cant find it. All that need be done is to edit config.h and undefine DONT_ADD_FROM. Then Eudora (and all the other well behaved mailers work correctly)..</span><span class="style1">
  2452. Thanks to Jeffrey Busma and Noel Petit for these answers.</span></text>
  2453.     </content>
  2454.     <name></name>
  2455.     <script></script>
  2456. </card>
  2457.  
  2458.  
  2459. card_10013.xml
  2460. <?xml version="1.0" encoding="utf-8" ?>
  2461. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2462. <card>
  2463.     <id>10013</id>
  2464.     <filler1>0</filler1>
  2465.     <cantDelete> <false /> </cantDelete>
  2466.     <showPict> <true /> </showPict>
  2467.     <dontSearch> <false /> </dontSearch>
  2468.     <owner>2620</owner>
  2469.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2470.     <part>
  2471.         <id>1</id>
  2472.         <type>field</type>
  2473.         <visible> <true /> </visible>
  2474.         <dontWrap> <false /> </dontWrap>
  2475.         <dontSearch> <false /> </dontSearch>
  2476.         <sharedText> <false /> </sharedText>
  2477.         <fixedLineHeight> <false /> </fixedLineHeight>
  2478.         <autoTab> <false /> </autoTab>
  2479.         <lockText> <false /> </lockText>
  2480.         <rect>
  2481.             <left>79</left>
  2482.             <top>108</top>
  2483.             <right>487</right>
  2484.             <bottom>279</bottom>
  2485.         </rect>
  2486.         <style>scrolling</style>
  2487.         <autoSelect> <false /> </autoSelect>
  2488.         <showLines> <false /> </showLines>
  2489.         <wideMargins> <false /> </wideMargins>
  2490.         <multipleLines> <false /> </multipleLines>
  2491.         <reservedFamily> 0 </reservedFamily>
  2492.         <titleWidth>0</titleWidth>
  2493.         <icon>0</icon>
  2494.         <textAlign>left</textAlign>
  2495.         <font>Geneva</font>
  2496.         <textSize>10</textSize>
  2497.         <textStyle>plain</textStyle>
  2498.         <textHeight>13</textHeight>
  2499.         <name></name>
  2500.         <script></script>
  2501.     </part>
  2502.     <content>
  2503.         <layer>background</layer>
  2504.         <id>3</id>
  2505.         <text>Sigurd Meldal wrote this lisp code to do the job:</text>
  2506.     </content>
  2507.     <content>
  2508.         <layer>background</layer>
  2509.         <id>2</id>
  2510.         <text>I have some mail in emacs/techmail/babyl format.  Can I convert it to Eudora?</text>
  2511.     </content>
  2512.     <content>
  2513.         <layer>card</layer>
  2514.         <id>1</id>
  2515.         <text>(defun sm-many-cvt-babyl-to-unix ()
  2516.  (interactive)
  2517.  (while t
  2518.    (setq file-name (expand-file-name (read-file-name "BABYL file: ")))
  2519.    (sm-cvt-babyl-to-unix-mail-ext file-name)
  2520.    )
  2521. )
  2522.  
  2523. (defun sm-cvt-babyl-to-unix-mail-ext (from-file)
  2524.  (interactive "fBABYL file: ")
  2525.   (rmail from-file)
  2526.   (sm-babyl-to-unix (concat from-file ".mail"))
  2527. )
  2528.  
  2529. (defun sm-cvt-babyl-to-unix (from-file to-file)
  2530.   (interactive "fBABYL file: \nF unix mail file: ")
  2531.   (rmail from-file)
  2532.   (sm-babyl-to-unix to-file)
  2533. )
  2534.  
  2535.  
  2536. (defun sm-babyl-to-unix (file-name)
  2537.   (interactive
  2538.    (list
  2539.     (read-file-name
  2540.      (concat "Output message to Unix mail file"
  2541.          (if rmail-last-file
  2542.          (concat " (default "
  2543.              (file-name-nondirectory rmail-last-file)
  2544.              "): " )
  2545.            ": "))            
  2546.      (and rmail-last-file (file-name-directory rmail-last-file))
  2547.      rmail-last-file)))
  2548.   (setq file-name (expand-file-name file-name))
  2549.   (setq rmail-delete-after-output nil)
  2550.   (rmail-show-message 1)
  2551.   (rmail-output file-name)
  2552.   (message "                            %d of %d"
  2553.        rmail-current-message rmail-total-messages)
  2554.   (while (< rmail-current-message rmail-total-messages)
  2555.     (rmail-maybe-set-message-counters)
  2556.     (rmail-next-message 1)
  2557.     (rmail-output file-name)
  2558.   )
  2559. )
  2560. </text>
  2561.     </content>
  2562.     <name></name>
  2563.     <script></script>
  2564. </card>
  2565.  
  2566.  
  2567. card_9368.xml
  2568. <?xml version="1.0" encoding="utf-8" ?>
  2569. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2570. <card>
  2571.     <id>9368</id>
  2572.     <filler1>0</filler1>
  2573.     <cantDelete> <false /> </cantDelete>
  2574.     <showPict> <true /> </showPict>
  2575.     <dontSearch> <false /> </dontSearch>
  2576.     <owner>2620</owner>
  2577.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2578.     <part>
  2579.         <id>1</id>
  2580.         <type>button</type>
  2581.         <visible> <true /> </visible>
  2582.         <reserved5> 0 </reserved5>
  2583.         <reserved4> 0 </reserved4>
  2584.         <reserved3> 0 </reserved3>
  2585.         <reserved2> 0 </reserved2>
  2586.         <reserved1> 0 </reserved1>
  2587.         <enabled> <true /> </enabled>
  2588.         <rect>
  2589.             <left>230</left>
  2590.             <top>173</top>
  2591.             <right>330</right>
  2592.             <bottom>195</bottom>
  2593.         </rect>
  2594.         <style>roundrect</style>
  2595.         <showName> <true /> </showName>
  2596.         <highlight> <false /> </highlight>
  2597.         <autoHighlight> <false /> </autoHighlight>
  2598.         <sharedHighlight> <true /> </sharedHighlight>
  2599.         <family>0</family>
  2600.         <titleWidth>0</titleWidth>
  2601.         <icon>0</icon>
  2602.         <textAlign>center</textAlign>
  2603.         <font>Chicago</font>
  2604.         <textSize>12</textSize>
  2605.         <textStyle>plain</textStyle>
  2606.         <name>QM converter</name>
  2607.         <script>on mouseUp
  2608. -- This script helps convert QuickMail 1.5 mail archives to Eudora 1.2.2 archives.
  2609. -- To use it, run QuickMail and select all the files you want from a QuickMail folder and hit the Save button.
  2610. -- Double click on "Mail" in the prompted file name, type the Eudora mailbox name you like for it.
  2611. -- So the filename is "Saved maiboxname".
  2612. -- Repeat for all the QM folders you want to transfer.
  2613. -- Run this script, by clicking on the button. When prompted, type a right arrow
  2614. --  (to get insertion to follow "Saved ") and then the mailboxname and return.
  2615. -- A progress report shows up in the message box, and beeps signal completion. It takes about a second per mail message.
  2616. -- When you have generated all the Eudora mailboxes by this conversion method, they don't have .toc files associated.
  2617. -- Start up Eudora by double-clicking "In" in the folder containing the mailboxes. When you open mailboxes,
  2618. -- Eudora will generate the needed .toc files based on its scan of the converted file.
  2619. --
  2620. -- This will not transfer QuickMail attachments. I did that manually by looking for the symbols that identify them
  2621. --  in the QM mail display, selecting them and either extracting them in QuickMail or by
  2622. --  forwarding them to my new mail address. Eudora converts them on receipt.
  2623. --
  2624. -- This is a kludge I wrote for handling a 1-time conversion of about 2000 mail messages.
  2625. -- Not particularly elegant, and may need to be patched up to satisfy your own needs.
  2626. -- Dave Gustavson, dbg@slac.stanford.edu  17Nov92
  2627. --
  2628. -- states: (description is not precise)
  2629. -- 1 at start of message, past the terminator and its following blank line
  2630. --   scan for To and From lines, save each
  2631. -- until hit empty line. Then optionally output a correct From line to help Eudora
  2632. -- and go to state 2
  2633. -- 2 copy input to output blindly until find terminator line and its following blank line
  2634. -- skip over them and go to 1
  2635. -- 3 output the Eudora separator line if the file wasn't empty, go to state 1 and process
  2636. -- 4
  2637. ask "Convert which file?" with "Stealth 2:Eudora docs:Saved " -- Change Drive etc to suit, leave "Saved " part ****
  2638. -- the preceding line picks up the files you saved with QuickMail
  2639. if it is empty then exit mouseUp
  2640. put it into fileName
  2641. open file fileName
  2642. put char offset("Saved ",fileName)+6 to length(fileName) of fileName into project
  2643. put "Stealth 2:Eudora Folder:" & project into fileName2 -- Change Drive etc to suit ****
  2644. -- the preceding line should result in Eudora mailboxes being formed in the folder containing In and Out, for example.
  2645. open file fileName2
  2646. set the cursor to watch
  2647. -- process and copy file
  2648. put "Dave Gustavson" into myFromName -- **** The form of my return addr in a From line that tells me I sent this one
  2649. put "Dave Gustavson, " into meForm1 -- **** One form of my return addr to eliminate from To lines
  2650. put "dbg@SLAC.STANFORD.EDU, " into meForm2 -- **** Second form of my return addr to eliminate from To lines
  2651. put 0 into counter
  2652. put 3 into state -- found start of message
  2653.  
  2654. repeat
  2655. read from file fileName until return
  2656. if it is empty then exit repeat
  2657. put it into quickread
  2658. put length(quickread) into lenQuick
  2659.  
  2660. if state = 3 then
  2661. -- Found end of message delimiter, finish up and replace it, then do state 1 processing
  2662. put counter+1 into counter  -- count mail files
  2663. put project &" = " & counter
  2664. put 1 into state -- found start of message
  2665. put 0 into MayEOH
  2666. put 0 into FromDate
  2667. put empty into ToAddress
  2668. put empty into FromAddress
  2669. write "From ???@??? Thu Sep 27 07:03:52 1990" & return to file fileName2
  2670. end if
  2671.  
  2672. if state = 1 then -- scan for To and From lines, remember them
  2673. if "        Reply to:" = (char 1 to 17 of quickread) then -- grab the subject info
  2674. write "Subject: " & char 21 to length(quickread) of quickread to file fileName2
  2675. if myFromName = char 1 to length(myFromName) of FromAddress then
  2676. write "From: >" & ToAddress to file fileName2
  2677. end if
  2678. write return to file fileName2 -- end headers first with null line
  2679. put 2 into state
  2680. put 0 into MayEOH
  2681. write quickread to file fileName2
  2682. next repeat
  2683. end if
  2684. if "                       Subject:" = (char 1 to 31 of quickread) then -- grab subject from next line
  2685. put quickread into save1
  2686. read from file fileName until return
  2687. if it is empty then exit repeat
  2688. put it into quickread
  2689. write "Subject: " & char 24 to 62 of quickread & return to file fileName2
  2690. if myFromName = char 1 to length(myFromName) of FromAddress then
  2691. write "From: >" & ToAddress to file fileName2
  2692. end if
  2693. write return to file fileName2 -- end headers first with null line
  2694. put 2 into state
  2695. put 0 into MayEOH
  2696. write save1 to file fileName2
  2697. write quickread to file fileName2
  2698. next repeat
  2699. end if
  2700.  
  2701. if ("GatorMail-Q" = (char 1 to 11 of quickread)) or ("Mail*Link" = (char 1 to 9 of quickread)) then
  2702. if FromDate = 0 then
  2703. put 0 into MayEOH
  2704. next repeat
  2705. else -- was a QM header ender, get subject off of it
  2706. put 2 into state
  2707. write "Subject: " & char 31 to length(quickread) of quickread to file fileName2
  2708. if myFromName = char 1 to length(myFromName) of FromAddress then
  2709. write "From: >" & ToAddress to file fileName2
  2710. end if
  2711. write return to file fileName2 -- end headers first with null line
  2712. put 0 into MayEOH
  2713. next repeat
  2714. end if
  2715. end if
  2716.  
  2717. if MayEOH = 1 then -- previous null line was indeed the end of headers
  2718. put 2 into state
  2719. if myFromName = char 1 to length(myFromName) of FromAddress then
  2720. write "From: >" & ToAddress to file fileName2
  2721. end if
  2722. write return to file fileName2 -- end headers first with null line
  2723. put 0 into MayEOH
  2724. end if
  2725. if "To: " = (char 1 to 4 of quickread) then
  2726. put char 5 to lenQuick of quickread into ToAddress
  2727. put offset(meForm1,ToAddress) into i
  2728. if i > 0 then -- remove myself from To list
  2729. delete char i to i+length(meForm1)-1 of ToAddress
  2730. end if
  2731. put offset(meForm2,ToAddress) into i
  2732. if i > 0 then -- remove myself from To list
  2733. delete char i to i+length(meForm2)-1 of ToAddress
  2734. end if
  2735. repeat while offset("(", ToAddress) > 0  -- eliminate some folks' darn parens in phone numbers
  2736. delete char offset("(", ToAddress) of ToAddress
  2737. end repeat
  2738. repeat while offset(")", ToAddress) > 0  -- eliminate some folks' darn parens in phone numbers
  2739. delete char offset(")", ToAddress) of ToAddress
  2740. end repeat
  2741. end if
  2742. if "From: " = (char 1 to 6 of quickread) then
  2743. if (char lenQuick-3 of quickread = "9") and (char lenQuick-1 of quickread = ")") then
  2744. -- From line ends in "9?)" so a plausible year, pick out the date and discard phone numbers etc
  2745. put offset("(",quickread) into lparLoc
  2746. put lenQuick-2 into i
  2747. repeat until char i of quickread = "(" or i = lparLoc
  2748. put i-1 into i
  2749. end repeat
  2750. write "Date: " & char i+1 to lenQuick-2 of quickread & return to file fileName2
  2751. delete char lparLoc to lenQuick-1 of quickread
  2752. put char 7 to length(quickread) of quickread into FromAddress
  2753. put 1 into FromDate
  2754. else
  2755. put char 7 to lenQuick of quickread into FromAddress
  2756. end if -- date extract
  2757. end if -- From line
  2758. if (quickread = return) or (quickread = "     " & return) then
  2759. put 1 into MayEOH
  2760. next repeat
  2761. end if -- empty line
  2762. if quickread = "======================================================================" & return then
  2763. read from file fileName until return -- This was an unexpected end in header scan, skip following blank line
  2764. put 3 into state
  2765. next repeat -- go on without writing what we just read
  2766. end if
  2767.  
  2768. else if state = 2 then
  2769. if quickread = "======================================================================" & return then
  2770. read from file fileName until return -- skip following blank line
  2771. put 3 into state
  2772. next repeat -- go on without writing what we just read
  2773. end if
  2774. end if
  2775. if quickread = "     " & return then put return into quickread  -- I found a lot of space-wasters from some sources
  2776. write quickread to file fileName2
  2777. end repeat
  2778.  
  2779. -- clean up and print statistics
  2780. put "Total " & project & " files written = " & counter
  2781. close file fileName
  2782. close file fileName2
  2783. beep
  2784. beep
  2785. end mouseUp
  2786. </script>
  2787.     </part>
  2788.     <content>
  2789.         <layer>background</layer>
  2790.         <id>2</id>
  2791.         <text>I have some mail in QuickMail format.  Can I convert it?</text>
  2792.     </content>
  2793.     <content>
  2794.         <layer>background</layer>
  2795.         <id>3</id>
  2796.         <text>This button has a script that may help.  It was contributed by Dave Gustavson (thanks).  You will have to know a little about HyperTalk to make it work for you.</text>
  2797.     </content>
  2798.     <name></name>
  2799.     <script></script>
  2800. </card>
  2801.  
  2802.  
  2803. card_10571.xml
  2804. <?xml version="1.0" encoding="utf-8" ?>
  2805. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2806. <card>
  2807.     <id>10571</id>
  2808.     <filler1>0</filler1>
  2809.     <cantDelete> <false /> </cantDelete>
  2810.     <showPict> <true /> </showPict>
  2811.     <dontSearch> <false /> </dontSearch>
  2812.     <owner>2620</owner>
  2813.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2814.     <content>
  2815.         <layer>background</layer>
  2816.         <id>3</id>
  2817.         <text><span class="style3">udora splits incoming messages into 24K pieces, if the message itself is over 26K.  These constants can be adjusted  (look for FRAGMENT_SIZE and SPLIT_THRESH in the Eudora Q&A stack), but they must not be set over 32K.
  2818.  
  2819. The reason for the 32K limit is Macintosh TextEdit, which is limited to 32K.  The reason Eudora splits well below the limit is to allow for quoting during replies and forwards, and suchlike.
  2820.  
  2821. The pieces can be reassembled by selecting them all in a mailbox window and choosing "Save As..." from the "File" menu.  Be sure to turn off "Include Headers".  The resulting text file can be opened by a word processor or other application that can work with large text files.
  2822. </span></text>
  2823.     </content>
  2824.     <content>
  2825.         <layer>background</layer>
  2826.         <id>2</id>
  2827.         <text>Can I change the size at which Eudora splits messages?  Why does Eudora split messages?  How can I put split messages back together?</text>
  2828.     </content>
  2829.     <name></name>
  2830.     <script></script>
  2831. </card>
  2832.  
  2833.  
  2834. card_11598.xml
  2835. <?xml version="1.0" encoding="utf-8" ?>
  2836. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2837. <card>
  2838.     <id>11598</id>
  2839.     <filler1>0</filler1>
  2840.     <cantDelete> <false /> </cantDelete>
  2841.     <showPict> <true /> </showPict>
  2842.     <dontSearch> <false /> </dontSearch>
  2843.     <owner>2620</owner>
  2844.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2845.     <content>
  2846.         <layer>background</layer>
  2847.         <id>2</id>
  2848.         <text>When I reply to a message, Eudora puts an "R" in the left column of the message summary.  But if I delete the reply before I send it, the "R" stays.  Is this a bug?</text>
  2849.     </content>
  2850.     <content>
  2851.         <layer>background</layer>
  2852.         <id>3</id>
  2853.         <text>No, it's a deficiency.  Eudora just isn't smart enough to remember which original message the reply came from, so it can't go back and remove the "R" from it.
  2854.  
  2855. I will fix this eventually, but it will require major surgery.</text>
  2856.     </content>
  2857.     <name></name>
  2858.     <script></script>
  2859. </card>
  2860.  
  2861.  
  2862. card_11955.xml
  2863. <?xml version="1.0" encoding="utf-8" ?>
  2864. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  2865. <card>
  2866.     <id>11955</id>
  2867.     <filler1>0</filler1>
  2868.     <cantDelete> <false /> </cantDelete>
  2869.     <showPict> <true /> </showPict>
  2870.     <dontSearch> <false /> </dontSearch>
  2871.     <owner>2620</owner>
  2872.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  2873.     <part>
  2874.         <id>1</id>
  2875.         <type>field</type>
  2876.         <visible> <true /> </visible>
  2877.         <dontWrap> <false /> </dontWrap>
  2878.         <dontSearch> <false /> </dontSearch>
  2879.         <sharedText> <false /> </sharedText>
  2880.         <fixedLineHeight> <false /> </fixedLineHeight>
  2881.         <autoTab> <false /> </autoTab>
  2882.         <lockText> <false /> </lockText>
  2883.         <rect>
  2884.             <left>77</left>
  2885.             <top>116</top>
  2886.             <right>487</right>
  2887.             <bottom>164</bottom>
  2888.         </rect>
  2889.         <style>scrolling</style>
  2890.         <autoSelect> <false /> </autoSelect>
  2891.         <showLines> <false /> </showLines>
  2892.         <wideMargins> <false /> </wideMargins>
  2893.         <multipleLines> <false /> </multipleLines>
  2894.         <reservedFamily> 0 </reservedFamily>
  2895.         <titleWidth>0</titleWidth>
  2896.         <icon>0</icon>
  2897.         <textAlign>left</textAlign>
  2898.         <font>Monaco</font>
  2899.         <textSize>9</textSize>
  2900.         <textStyle>plain</textStyle>
  2901.         <textHeight>12</textHeight>
  2902.         <name></name>
  2903.         <script></script>
  2904.     </part>
  2905.     <part>
  2906.         <id>3</id>
  2907.         <type>field</type>
  2908.         <visible> <true /> </visible>
  2909.         <dontWrap> <false /> </dontWrap>
  2910.         <dontSearch> <false /> </dontSearch>
  2911.         <sharedText> <false /> </sharedText>
  2912.         <fixedLineHeight> <false /> </fixedLineHeight>
  2913.         <autoTab> <false /> </autoTab>
  2914.         <lockText> <false /> </lockText>
  2915.         <rect>
  2916.             <left>77</left>
  2917.             <top>171</top>
  2918.             <right>488</right>
  2919.             <bottom>219</bottom>
  2920.         </rect>
  2921.         <style>scrolling</style>
  2922.         <autoSelect> <false /> </autoSelect>
  2923.         <showLines> <false /> </showLines>
  2924.         <wideMargins> <false /> </wideMargins>
  2925.         <multipleLines> <false /> </multipleLines>
  2926.         <reservedFamily> 0 </reservedFamily>
  2927.         <titleWidth>0</titleWidth>
  2928.         <icon>0</icon>
  2929.         <textAlign>left</textAlign>
  2930.         <font>Monaco</font>
  2931.         <textSize>9</textSize>
  2932.         <textStyle>plain</textStyle>
  2933.         <textHeight>12</textHeight>
  2934.         <name></name>
  2935.         <script></script>
  2936.     </part>
  2937.     <part>
  2938.         <id>4</id>
  2939.         <type>field</type>
  2940.         <visible> <true /> </visible>
  2941.         <dontWrap> <false /> </dontWrap>
  2942.         <dontSearch> <false /> </dontSearch>
  2943.         <sharedText> <false /> </sharedText>
  2944.         <fixedLineHeight> <false /> </fixedLineHeight>
  2945.         <autoTab> <false /> </autoTab>
  2946.         <lockText> <false /> </lockText>
  2947.         <rect>
  2948.             <left>77</left>
  2949.             <top>226</top>
  2950.             <right>488</right>
  2951.             <bottom>274</bottom>
  2952.         </rect>
  2953.         <style>scrolling</style>
  2954.         <autoSelect> <false /> </autoSelect>
  2955.         <showLines> <false /> </showLines>
  2956.         <wideMargins> <false /> </wideMargins>
  2957.         <multipleLines> <false /> </multipleLines>
  2958.         <reservedFamily> 0 </reservedFamily>
  2959.         <titleWidth>0</titleWidth>
  2960.         <icon>0</icon>
  2961.         <textAlign>left</textAlign>
  2962.         <font>Monaco</font>
  2963.         <textSize>9</textSize>
  2964.         <textStyle>plain</textStyle>
  2965.         <textHeight>12</textHeight>
  2966.         <name></name>
  2967.         <script></script>
  2968.     </part>
  2969.     <content>
  2970.         <layer>background</layer>
  2971.         <id>2</id>
  2972.         <text>Where can I find a server for Eudora's "Change Password" menu item?</text>
  2973.     </content>
  2974.     <content>
  2975.         <layer>background</layer>
  2976.         <id>3</id>
  2977.         <text>Qualcomm is working on one.  I also have the following three that were contributed by users:</text>
  2978.     </content>
  2979.     <content>
  2980.         <layer>card</layer>
  2981.         <id>1</id>
  2982.         <text><span class="style8">osted-From: The MITRE Corporation, Bedford, MA
  2983. To: sdorner@qualcomm.com (Steve Dorner)
  2984. From: dll@mitre.org (Daniel L. Leavitt)
  2985. Subject: Re: Change password server 
  2986. Date: Tue, 10 Nov 92 10:56:29 EST
  2987. Sender: dll@mbunix.mitre.org
  2988.  
  2989.  
  2990. Steve,
  2991.  
  2992.         Here it is.  This is the first such program I've ever written so I'd appreciate
  2993. any constructive comments if anyone cares to send me any.  
  2994.  
  2995. -Dan
  2996.  
  2997.  
  2998. --------------
  2999. /* 
  3000.  * poppassd.c  Update passwords on the UNIX system from the Eudora "Change Password"
  3001.  *             client.  Keeps a log of change attempts in /etc/poppassd.log but 
  3002.  *             suppresses recording of passwords given by the client.
  3003.  *             
  3004.  *             Must be owned by root, and executable only by root.  It can be started 
  3005.  *             with an entry in /etc/inetd.conf such as the following:
  3006.  *
  3007.  *                 poppassd stream tcp nowait root  /usr/local/poppassd/poppassd poppassd
  3008.  * 
  3009.  *             and in /etc/services:
  3010.  * 
  3011.  *                 ppassd        106/tcp
  3012.  *
  3013.  */
  3014.  
  3015. #include <stdio.h>
  3016. #include <string.h>
  3017. #include <pwd.h>
  3018. #include <signal.h>
  3019. #include <unistd.h>
  3020. #include <varargs.h>
  3021. #include <sys/wait.h>
  3022. #include <sys/socket.h>
  3023. #include <netinet/in.h>
  3024. #include <netdb.h>
  3025. #include <sys/types.h>
  3026. #include <sys/file.h>
  3027. #include <time.h>
  3028.  
  3029. #define PF_PLATE        "./ptmpXXXXX"   /* original temporary file */
  3030. #define PF_TEMP         "./ptmp"        /* lock file */
  3031.  
  3032. #define PW_CHANGED      0               /* a OK */
  3033. #define PW_CANTLOCK     -1              /* error code -- locking failed */
  3034. #define PW_CANTOPEN     -2              /* error code -- open failed */
  3035. #define PW_CANTRENAME   -3              /* error code -- rename failed */
  3036. #define PW_NOCHANGE     -4              /* error code -- no passwd entry */
  3037.  
  3038. #define SUCCESS 1
  3039. #define FAILURE 0
  3040. #define BUFSIZE 255
  3041. #define MAXARGS 32
  3042. #define SUPPRESS 1
  3043.  
  3044. #define FI_NULL ((FILE *) NULL)                /* NULL file pointer */
  3045. #define TI_NULL ((time_t *) NULL)      /* NULL time pointer */
  3046.  
  3047.  
  3048. /*
  3049.  * library functions
  3050.  */
  3051. extern char *mktemp();                  /* makes a temp file name */
  3052.  
  3053. /*
  3054.  * global variables
  3055.  */
  3056. char *pf_name = "passwd";               /* password file name */
  3057. char *pf_tnam;                          /* name of temporary file */
  3058. FILE *pf_fp;                            /* pointer to real password file */
  3059. FILE *pf_tfp;                           /* pointer to temporary file */
  3060. FILE *log;
  3061. time_t gNow;
  3062. char gDate[BUFSIZE];
  3063.  
  3064. main (argc, argv)
  3065. int argc;
  3066. char *argv[];
  3067. {
  3068.  
  3069.         char line[BUFSIZE];
  3070.         char user[BUFSIZE];
  3071.         char pass[BUFSIZE];
  3072.         char newpass[BUFSIZE];
  3073.         char logFile[BUFSIZE];
  3074.         struct passwd *pw;
  3075.  
  3076.         chdir( "/etc" );
  3077.         sprintf(logFile, "/etc/%s.log", argv[0]);
  3078.         strcpy( user, "" );
  3079.         strcpy( pass, "" );
  3080.         strcpy( newpass, "" );
  3081.  
  3082.         /*
  3083.          * Open the logfile for append
  3084.          */
  3085.         if ( !( log = fopen( logFile, "a+" )) ) {
  3086.                 WriteToClient( "500 Can't open %s.", logFile );
  3087.                 exit(1);
  3088.         }
  3089.         
  3090. #if 0
  3091.         The server's responses should be like an FTP server's responses; 
  3092.         1xx for in progress, 2xx for success, 3xx for more information
  3093.         needed, 4xx for temporary failure, and 5xx for permanent failure.  
  3094.         Putting it all together, here's a sample conversation:
  3095.  
  3096.         S: 200 hello\r\n
  3097.         E: user yourloginname\r\n
  3098.         S: 300 please send your password now\r\n
  3099.         E: pass yourcurrentpassword\r\n
  3100.         S: 200 My, that was tasty\r\n
  3101.         E: newpass yournewpassword\r\n
  3102.         S: 200 Happy to oblige\r\n
  3103.         E: quit\r\n
  3104.         S: 200 Bye-bye\r\n
  3105.         S: <closes connection>
  3106.         E: <closes connection>
  3107. #endif
  3108.  
  3109.         WhoAreYou();
  3110.  
  3111.         WriteToClient( "200 hello, who are you?" );
  3112.         ReadFromClient( line, 0 );
  3113.         sscanf(line, "user %s", user) ;
  3114.         if ( strlen(user) == 0 ) {
  3115.                 WriteToClient( "500 username required." );
  3116.                 exit(1);
  3117.         }
  3118.  
  3119.         WriteToClient( "200 your password please." );
  3120.         ReadFromClient( line, SUPPRESS );
  3121.         sscanf( line, "pass %s", pass) ;
  3122.         if ( strlen(pass) == 0 ) {
  3123.                 WriteToClient( "500 password required." );
  3124.                 exit(1);
  3125.         }
  3126.  
  3127.         WriteToClient( "200 your new password please." );
  3128.         ReadFromClient( line, SUPPRESS );
  3129.         sscanf( line, "newpass %s", newpass );
  3130.  
  3131.         /* new pass required */
  3132.         if ( strlen(newpass) == 0 ) {
  3133.                 WriteToClient( "500 new password required." );
  3134.                 exit(1);
  3135.         }
  3136.         /* new pass must be 6 char or longer */
  3137.         else if ( strlen(newpass) < 6 ) {
  3138.                 WriteToClient( "500 New password too short" );
  3139.                 exit(1);
  3140.         }
  3141.         /* new pass must be different from old pass */
  3142.         else if ( !strcmp(pass, newpass) ) {
  3143.                 WriteToClient( "500 New password must be different." );
  3144.                 exit(1);
  3145.         }
  3146.  
  3147.         /* test for valid user */
  3148.         if ( (pw=getpwnam(user)) == NULL ) {
  3149.                 WriteToClient( "500 Unknown user, %s.", user);
  3150.                 exit(1);
  3151.         }
  3152.  
  3153.         /* authenticate user */
  3154.         if ( chkPass( user, pass, pw ) == FAILURE ) {
  3155.                 WriteToClient( "500 Authentication failure.");
  3156.                 exit(1);
  3157.         }
  3158.                 
  3159.         if ( setPass( user, pass, newpass, pw ) == FAILURE ) { 
  3160.                 WriteToClient( "500 Unable to change password." );
  3161.                 exit(1);
  3162.         }
  3163.  
  3164.         WriteToClient( "200 Password changed, thank-you." );
  3165.         return(1);
  3166. }
  3167.  
  3168.  
  3169. WhoAreYou()
  3170. {
  3171.         struct sockaddr_in bobby;
  3172.         int   bobbyLen = sizeof(struct sockaddr);
  3173.         struct passwd *pw;
  3174.         char   *inet_ntoa();
  3175.         char   *ttyname();
  3176.  
  3177.         fputs( "\n", log );
  3178.  
  3179.         if (isatty(fileno(stdin))) {
  3180.                 pw = getpwuid(getuid());
  3181.                 WriteLog( "Connection on %s by %s",
  3182.                         ttyname(fileno(stdin)), pw->pw_name);
  3183.         }
  3184.  
  3185.         else if (lseek(fileno(stdin), 0, L_INCR) >= 0) {
  3186.                 pw = getpwuid(getuid());
  3187.                 WriteLog( "Connection on FILE by %s", pw->pw_name);
  3188.         }
  3189.  
  3190.         else if (getpeername(fileno(stdin), (struct sockaddr *)&bobby, 
  3191.                         &bobbyLen) < 0) {
  3192.                 pw = getpwuid(getuid());
  3193.                 WriteLog( "Connection on PIPE by %s", pw->pw_name);
  3194.         }
  3195.  
  3196.         else {
  3197. #               if defined(sparc) && __GNUC__ == 1 
  3198.                         WriteLog( "NET connection from  %s", 
  3199.                                 inet_ntoa(&bobby.sin_addr));
  3200. #               else
  3201.                         WriteLog( "NET connection from %s", 
  3202.                                 inet_ntoa(bobby.sin_addr));
  3203. #               endif
  3204.         }
  3205. }
  3206.  
  3207. WriteToClient( va_alist )
  3208. va_dcl
  3209. {
  3210.         va_list ap;
  3211.         char *fmt;      
  3212.         char *args[MAXARGS];
  3213.         int argno = 0;
  3214.         char string[BUFSIZE];
  3215.         
  3216.         UpdateTime( );
  3217.  
  3218.         va_start( ap );
  3219.         fmt = va_arg(ap, char *);
  3220.         while ((args[argno++] = va_arg(ap, char *)) != (char *)0)
  3221.                     ;
  3222.  
  3223.         vfprintf(stdout, fmt, args);
  3224.         fputs("\r\n", stdout );
  3225.         fflush(stdout);
  3226.  
  3227.         vsprintf(string, fmt, args);
  3228.         WriteLog( "Server> %s", string );
  3229.  
  3230.         va_end( ap );
  3231. }
  3232.  
  3233. ReadFromClient( line , suppress)
  3234. char *line;
  3235. int suppress;
  3236. {
  3237.         char *sp;
  3238.         int i;
  3239.  
  3240.         UpdateTime();
  3241.         strcpy(line, "" );
  3242.         fgets( line, BUFSIZE, stdin );
  3243.         if (( sp = strchr(line, '\n')) != NULL ) *sp = '\0'; 
  3244.         if (( sp = strchr(line, '\r')) != NULL ) *sp = '\0'; 
  3245.         if ( suppress )
  3246.                 WriteLog( "Client> ..." );
  3247.         else
  3248.                 WriteLog( "Client> %s", line );
  3249. }
  3250.  
  3251. UpdateTime( )
  3252. {
  3253.         struct tm *date;
  3254.         
  3255.         gNow = time( NULL );            /* get current calendar time */
  3256.         date = localtime( &gNow );      /* convert it to a broken-down time */
  3257.         strftime( gDate, BUFSIZE, "%b %d %H:%M:%S", date );
  3258. }
  3259.  
  3260. WriteLog( va_alist )
  3261. va_dcl
  3262. {
  3263.         va_list ap;
  3264.         char *fmt;      
  3265.         char *args[MAXARGS];
  3266.         int argno = 0;
  3267.         UpdateTime( );
  3268.  
  3269.  
  3270.         va_start( ap );
  3271.         fmt = va_arg(ap, char *);
  3272.         while ((args[argno++] = va_arg(ap, char *)) != (char *)0)
  3273.                     ;
  3274.         fprintf( log, "%s: ", gDate );
  3275.         vfprintf(log, fmt, args);
  3276.         fputs( "\n", log );
  3277.         fflush(log);
  3278.         va_end( ap );
  3279. }
  3280.  
  3281. int chkPass( user, pass, pw )
  3282. char *user;
  3283. char *pass;
  3284. struct passwd *pw;
  3285. {
  3286.         /*  Compare the supplied password with the password file entry */
  3287.         if (strcmp (crypt (pass, pw->pw_passwd), pw->pw_passwd) != 0)
  3288.                 return ( FAILURE );
  3289.         else 
  3290.                 return ( SUCCESS );
  3291. }
  3292.  
  3293.  
  3294.  
  3295.  
  3296. makesalt( c )
  3297. char c[2];                      /* salt characters */
  3298. {
  3299.         register long salt;             /* used to compute a salt */
  3300.         register int i;                 /* counter in a for loop */
  3301.  
  3302.         /*
  3303.          * just mix a few things up for the salt ...
  3304.          * no rhyme or reason here
  3305.          */
  3306.         salt = (((long) time(TI_NULL))&0x3f) | (getpid() << 5);
  3307.  
  3308.         /*
  3309.          * use the bottom 12 bits and map them into the legal alphabet
  3310.          */
  3311.         for(i = 0; i < 2; i++){
  3312.                 c[i] = (salt & 0x3f) + '.';
  3313.                 if (c[i] > '9')
  3314.                         c[i] += 7;
  3315.                 if (c[i] > 'Z')
  3316.                         c[i] += 6;
  3317.                 salt >>= 6;
  3318.         }
  3319. }
  3320.  
  3321.  
  3322. setPass( user, pass, newpass, pw )
  3323. char *user;
  3324. char *pass;
  3325. char *newpass;
  3326. struct passwd *pw;
  3327. {
  3328.  
  3329.         char saltc[2];          /* the password's salt */
  3330.  
  3331.         makesalt(saltc);
  3332.         strcpy( pw->pw_passwd, crypt(newpass, saltc));
  3333.  
  3334.         if ( UpdatePasswordFile( pw ) == PW_CHANGED )
  3335.                 return (SUCCESS);
  3336.         else
  3337.                 return (FAILURE);
  3338. }
  3339.  
  3340.  
  3341.  
  3342. UpdatePasswordFile(p)
  3343. struct passwd *p;               /* new password structure */
  3344. {
  3345.         char nbuf[BUFSIZ];              /* buffer for passwords being read */
  3346.         char obuf[BUFSIZ];              /* buffer for new entry */
  3347.         register char *q, *s;           /* used for quick name comparison */
  3348.         int retval = PW_NOCHANGE;       /* return value */
  3349.  
  3350.         /*
  3351.          * disable ALL signals at this point
  3352.          */
  3353.         sigoff();
  3354.  
  3355.         /*
  3356.          * open the temporary password file
  3357.          */
  3358.         umask(022);
  3359.         pf_tnam = mktemp(PF_PLATE);
  3360.         if ((pf_tfp = fopen(pf_tnam, "w")) == FI_NULL){
  3361.                 retval = PW_CANTOPEN;
  3362.                 goto cantlock;
  3363.         }
  3364.  
  3365.         /*
  3366.          * lock the password file
  3367.          */
  3368.         if (link(pf_tnam, PF_TEMP) < 0){
  3369.                 retval = PW_CANTLOCK;
  3370.                 goto cantlock;
  3371.         }
  3372.         
  3373.         /*
  3374.          * copy the new password structure
  3375.          */
  3376.         sprintf(obuf, "%s:%s:%d:%d:%s:%s:%s\n",
  3377.                         p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid,
  3378.                         p->pw_gecos, p->pw_dir, p->pw_shell);
  3379.  
  3380.         /*
  3381.          * open the password file
  3382.          */
  3383.         if ((pf_fp = fopen(pf_name, "r")) == FI_NULL){
  3384.                 retval = PW_CANTOPEN;
  3385.                 goto getout;
  3386.         }
  3387.  
  3388.  
  3389.         /*
  3390.          * copy the password file into the temporary one
  3391.          */
  3392.         while(fgets(nbuf, BUFSIZ, pf_fp) != NULL){
  3393.                 for(s = nbuf, q = p->pw_name; *s && *s != ':'; s++, q++)
  3394.                         if (*s != *q)
  3395.                                 break;
  3396.                 if (*s == ':' && *q == '\0') {
  3397.                         fputs(obuf, pf_tfp);
  3398.                         retval = PW_CHANGED;
  3399.                 } else 
  3400.                         fputs(nbuf, pf_tfp);
  3401.         }
  3402.         if (retval == PW_NOCHANGE) {
  3403.                 goto getout;
  3404.         }
  3405.  
  3406.         /*
  3407.          * close the temporary file and the real one
  3408.          */
  3409.         (void) fclose(pf_tfp);
  3410.         pf_tfp = FI_NULL;
  3411.         (void) fclose(pf_fp);
  3412.         pf_fp = FI_NULL;
  3413.  
  3414.         /*
  3415.          * now relink; note the lock file is still there
  3416.          */
  3417.         if ( unlink(pf_name) >= 0
  3418.                 && link(pf_tnam, pf_name) >= 0
  3419.                 && unlink(pf_tnam) >= 0){
  3420.                 retval = PW_CHANGED;
  3421.         }
  3422.         else
  3423.                 retval = PW_CANTRENAME;
  3424.  
  3425. getout:
  3426.         /*
  3427.          * Only remove lock file if this program obtained it
  3428.          */
  3429.          (void) unlink(PF_TEMP); 
  3430.  
  3431. cantlock:
  3432.         /* some clean up */
  3433.         if (pf_tfp != FI_NULL)
  3434.                 (void) fclose(pf_tfp);
  3435.         if (pf_fp != FI_NULL)
  3436.                 (void) fclose(pf_fp);
  3437.         (void) unlink(pf_tnam);
  3438.  
  3439.         sigon(); /* re-enable ALL signals at this point */
  3440.  
  3441.         return(retval);
  3442. }
  3443.  
  3444.  
  3445. /*
  3446.  * signal handling routines
  3447.  */
  3448. void (*trap[NSIG])();           /* values returned by signal() */
  3449.  
  3450.  
  3451. /*
  3452.  * disable ALL signal trapping
  3453.  */
  3454. sigoff()
  3455. {
  3456.         register int i;         /* counter in a for loop */
  3457.  
  3458.         for(i = 0; i < NSIG; i++)
  3459.                 (void) signal(i, SIG_IGN);
  3460. }
  3461.  
  3462. /*
  3463.  * restore to the initial setting all signals
  3464.  */
  3465. sigon()
  3466. {
  3467.         register int i;         /* counter in a for loop */
  3468.  
  3469.         for(i = 0; i < NSIG; i++)
  3470.                 (void) signal(i, trap[i]);
  3471.  
  3472. }
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478. </span></text>
  3479.     </content>
  3480.     <content>
  3481.         <layer>card</layer>
  3482.         <id>3</id>
  3483.         <text>To: sdorner@qualcomm.com
  3484. Subject: Password daemon for MH/Eudora
  3485. Organisation: BNR Europe, HARLOW, Essex CM17 9NA, GB
  3486. Phone: +44 279 402423
  3487. From: Andrew Macpherson (Postmaster) <A.Macpherson@bnr.co.uk>
  3488.  
  3489.  
  3490. Steve,
  3491.  
  3492. Thanks for helping John Bingham out so much.  Since you've added a password
  3493. changer, here is a daemon for those sites which use MH bpop (ie pop support
  3494. for non unix users from a unix host).  If it doesn't work the way you want
  3495. I'll happily make changes.
  3496.  
  3497. #!/usr/bin/perl
  3498. #
  3499. # Author Andrew Macpherson
  3500. #       <A.Macpherson@bnr.co.uk>
  3501. #       /DD.ID=1248566/G=Andrew/S=Macpherson/PRMD=BNR/ADMD= /C=GB/
  3502. #        to support the eudora password change protocol
  3503. #
  3504. # Entry for /etc/services:
  3505. #       epass      106/tcp 
  3506. # And for /etc/inetd.conf:
  3507. #       epass      stream  tcp     nowait  pop  /path/to/in.poppass
  3508. #
  3509. # $Header: /tmp_mnt/u/andrew/andrew/src/poppass/RCS/in.poppass,v 1.4 14/11/92 16:29:12 andrew Exp $
  3510. #
  3511. # $Log: in.poppass,v $
  3512. # Revision 1.4  14/11/92  16:29:12  andrew
  3513. # Inetd looping with wait, admin features not so usefull
  3514. # Revision 1.3  14/11/92  15:32:42  andrew
  3515. # Add admin password reset capability
  3516. # Revision 1.2  14/11/92  15:05:21  andrew
  3517. # Off by 1 report of existing accounts.
  3518. # Make use of the locking given by only allowing 1 daemon to
  3519. # add users without losing password changes.
  3520. # Revision 1.1  14/11/92  14:10:23  andrew
  3521. # Initial revision
  3522.  
  3523. $| = 1;
  3524. $Id = '$Id: in.poppass,v 1.4 14/11/92 16:29:12 andrew Exp $';
  3525. $perl = '/usr/bin/perl' ;       # Used in system() later
  3526.  
  3527. $MyName="POPpass" ;
  3528. require "syslog.pl";
  3529. &openlog($MyName,"pid,cons,nowait", "auth");
  3530.  
  3531. $\ = "\r\n" ; # Set output seperator for chitchat over tcp
  3532. chop( $host=`hostname` );
  3533.  
  3534. ( $me, $pop_pass, $b, $c, $d, $e, $f, $dir, $g ) = getpwnam("pop") ;
  3535.  
  3536. if ( ! $dir || ! -w $dir . '/POP' || ! chdir($dir) ) {
  3537.     print "420 Configuration error, please tell postmaster@$host" ;
  3538.     &syslog("notice", "Cannot access ${dir}/POP");
  3539.     &closelog();
  3540.     die;
  3541. }
  3542.  
  3543. print "200 hello $host POP password service" ;
  3544.  
  3545. $user = '';
  3546. $curcrypt = '' ;
  3547. $newcrypt = '' ;
  3548.  
  3549. while(<>) {
  3550.     chop;
  3551.   ( $action, $arg, $extra ) = split(/\s+/, $_);
  3552.     if ( $action =~ m/^user$/i ) {
  3553.         $user = $arg ;
  3554.         $curcrypt = '' ;
  3555.         print "300 Hello $arg, please prove it with your password" ;
  3556.     } elsif ( $action =~ m/^pass$/i ) {
  3557.         $curcrypt = '' ;
  3558.         if ( $user eq '' ) {
  3559.             print "400 I need to know who you claim to be first" ;
  3560.             next ;
  3561.         }
  3562.         &ValidUser($user, $arg) ; # Sets $curcrypt if true
  3563.         if ($curcrypt eq '') {
  3564.             &syslog('notice', "invalid POP password offered for $user");
  3565.             sleep(20);  # Slow him down
  3566.             print "500 Imposter! I have issued a security alert" ;
  3567.             last;
  3568.         }
  3569.         if ( $user eq 'pop' ) {
  3570.             print "200 Hail Oh great and glorious leader" ;
  3571.         } else {
  3572.             print "200 Ok, Now I believe you are $user" ;
  3573.         }
  3574.         &syslog('info', "POP user $user validated");
  3575.     } elsif ( $action =~ m/^newpass$/i ) {
  3576.         if ( $user eq '' ) {
  3577.             print "400 Who are you? Logon with USER and PASS first" ;
  3578.             next ;
  3579.         }
  3580.         if ( $curcrypt eq '' ) {
  3581.             print "401 Until you give me your old password," .
  3582.                      " I have to believe you are an Imposter";
  3583.             next ;
  3584.         }
  3585.         if (crypt($arg, $curcrypt) eq $curcrypt) {
  3586.             print "402 No it isn't, it's the same" ;
  3587.             next;
  3588.         }
  3589.         $newcrypt = crypt($arg, substr($curcrypt,1,2));
  3590.         $ok = system("$perl -pi.bak " .
  3591.                "-e 's:$curcrypt:$newcrypt: if m/^$user:/ ;' POP" ) ;
  3592.         if ( $ok / 256 ) {
  3593.             print "500 Sorry, update failed" ;
  3594.         } else {
  3595.             print "200 OK";
  3596.             $curcrypt = $newcrypt ;
  3597.         }
  3598.     } elsif ( $action =~ m/^quit$/i ) {
  3599.         print "200 $host, Glad to help" ;
  3600.         last ;
  3601.     } elsif ( $action =~ m/^status$/i ) {
  3602.         print "200 " . ($user eq '' ? "no user" : "user $user") .
  3603.                  ($curcrypt eq '' ? ' not' : '') . ' authenticated' ;
  3604.     } elsif ( $action =~ m/^version$/i ) {
  3605.         print "200 $MyName $Id" ;
  3606.     } elsif ( $action =~ m/^help$/i ) {
  3607.         print "200 Supported actions:" .
  3608.                  " USER PASS NEWPASS HELP QUIT STATUS VERSION" .
  3609.                  (( $user eq 'pop' && $curcrypt ne '')
  3610.                  ? " NEWUSER SETPASS" : "");
  3611.     } elsif ( $user eq 'pop' && $curcrypt ne '' && $action =~ m/^newuser$/i ) {
  3612.         if ( $arg ne '' && $extra ne '' ) {
  3613.             &NewUser($arg, $extra) ;
  3614.         } else {
  3615.             print "400 Newuser user pass" ;
  3616.         }
  3617.     } elsif ( $user eq 'pop' && $curcrypt ne ''
  3618.                     && $action =~ m/^setpass$/i
  3619.                     && $arg ne '' && $extra ne '' ) {
  3620.         $newcrypt = crypt($extra, substr($curcrypt,1,2));
  3621.         $ok = system("$perl -pi.bak " .
  3622.                "-e 's|$arg::$arg.*|$arg::$arg:$newcrypt::::::0| ;' POP" ) ;
  3623.         if ( $ok / 256 ) {
  3624.             print "500 Sorry, update failed" ;
  3625.         } else {
  3626.             print "200 OK";
  3627.             $curcrypt = $newcrypt ;
  3628.         }
  3629.     } else {
  3630.         print "400 I don't understand '$action' try help" ;
  3631.     }
  3632. }
  3633. &closelog();
  3634. exit 0;
  3635.  
  3636. sub ValidUser {
  3637.     local($user, $pass) = @_ ;
  3638.  
  3639.     if ( $user eq 'pop' ) {
  3640.         $curcrypt = $pop_pass if (crypt($pass, $pop_pass) eq $pop_pass);
  3641.         return ;
  3642.     }
  3643.     $curcrypt = '';             # Just in case
  3644.     open(POP, '<' . "POP") ;
  3645.     @entry = grep(/^$user:/, <POP>);
  3646.     close POP;
  3647.     if ($#entry == -1) {
  3648.         &syslog('notice', "POP user $user does not exist");
  3649.         return;
  3650.     }
  3651.     if ($#entry != 0) {
  3652.         $accts = $#entry + 1;
  3653.         print "520 there are $accts POP accounts for $user" ;
  3654.         &syslog('notice', "POP user $user has $accts accounts");
  3655.         &closelog();
  3656.         exit 1;
  3657.     }
  3658.     $entry = shift(@entry);
  3659.   ( $a, $b, $c, $ppass, @rest) = split(/:/, $entry) ;
  3660.     $curcrypt = $ppass if (crypt($pass, $ppass) eq $ppass);
  3661. }
  3662.  
  3663. sub NewUser {
  3664.     local($user, $pass) = @_ ;
  3665.  
  3666.     open(POP, '<' . "POP") ;
  3667.     @entry = grep(/^$user:/, <POP>);
  3668.     close POP;
  3669.     if ($#entry != -1) {
  3670.         &syslog('notice', "POP user $user already exists");
  3671.         print "500 $user exists" ;
  3672.         return ;
  3673.     }
  3674.     open(POP, '>>' . 'POP') ;
  3675.     printf POP "$user::$user:" . crypt($pass, '//') . "::::::0\n" ;
  3676.     close POP ;
  3677.     print "200 $user added" ;
  3678. }
  3679. __END__
  3680. This program was written to support Steve Dorner's Eudora program password
  3681. changing routine for systems using the MH/pop.
  3682.  
  3683. It is released for general use.
  3684.  
  3685. Andrew Macpherson reserves and asserts the right to be known as the
  3686. author of this work.
  3687.  
  3688.  
  3689. </text>
  3690.     </content>
  3691.     <content>
  3692.         <layer>card</layer>
  3693.         <id>4</id>
  3694.         <text>#!/bin/sh
  3695. # This is a shell archive (shar 3.32)
  3696. # made 02/11/1993 21:23 UTC by dorner@ux1.cso.uiuc.edu
  3697. # Source directory /cso/staff/dorner
  3698. #
  3699. # existing files WILL be overwritten
  3700. #
  3701. # This shar contains:
  3702. # length  mode       name
  3703. # ------ ---------- ------------------------------------------
  3704. #  15723 -rw-r--r-- poppassd.c
  3705. #   2030 -rw-r--r-- Makefile
  3706. #
  3707. if touch 2>&1 | fgrep 'amc' > /dev/null
  3708.  then TOUCH=touch
  3709.  else TOUCH=true
  3710. fi
  3711. # ============= poppassd.c ==============
  3712. echo "x - extracting poppassd.c (Text)"
  3713. sed 's/^X//' << 'SHAR_EOF' > poppassd.c &&
  3714. X/*
  3715. X * poppassd.c
  3716. X * 
  3717. X * Daemon to service Eudora "Change Password" requests.  This program
  3718. X * doesn't actually change any passwords itself.  It simply listens for
  3719. X * incomming requests, gathers the required information (user name, old
  3720. X * password, new password) and executes /bin/passwd, talking to it over
  3721. X * a pseudo-terminal pair.  The advantage of this is that we don't need
  3722. X * to have any knowledge of either the password file format (which may
  3723. X * include dbx files that need to be rebuilt) or of any file locking
  3724. X * protocol /bin/passwd and cohorts may use (and which isn't documented).
  3725. X *
  3726. X * Note that unencrypted passwords are transmitted over the network.  If
  3727. X * this bothers you, think hard about whether you want to implement Eudora's
  3728. X * password changing feature.  On the other hand, it's no worse than what
  3729. X * happens when you run /bin/passwd while connected via telnet or rlogin.
  3730. X * Well, maybe it is, since the use of a dedicated port makes it slightly
  3731. X * easier for a network snooper to snarf passwords off the wire.
  3732. X *
  3733. X * NOTE: In addition to the security issue outlined in the above paragraph,
  3734. X * you should be aware that this program is going to be run as root by
  3735. X * ordinary users and it mucks around with the password file.  This should
  3736. X * set alarms off in your head.  I think I've devised a pretty foolproof
  3737. X * way to ensure that security is maintained, but I'm no security expert and
  3738. X * you would be a fool to install this without first reading the code and
  3739. X * ensuring yourself that what I consider safe is good enough for you.  If
  3740. X * something goes wrong, it's your fault, not mine.
  3741. X *
  3742. X * This is an adaptation of a server by the same name from dll@mitre.org
  3743. X * (Daniel L. Leavitt of The MITRE Corporation).  The front-end code (which
  3744. X * talks to the Eudora client) is directly descended from his original
  3745. X * version.  The back-end stuff (which talks to /bin/password) is mine.
  3746. X *        
  3747. X * Should be owned by root, and executable only by root.  It can be started
  3748. X * with an entry in /etc/inetd.conf such as the following:
  3749. X *
  3750. X * poppassd stream tcp nowait /usr/etc/poppassd poppassd
  3751. X * 
  3752. X * and in /etc/services:
  3753. X * 
  3754. X * ppassd        106/tcp
  3755. X *
  3756. X * Roy Smith <roy@nyu.edu>
  3757. X * Department of Microbiology,
  3758. X * NYU School of Medicine
  3759. X * 550 First Avenue
  3760. X * New York, NY 10016
  3761. X */
  3762. X
  3763. X/* The server's responses should be like an FTP server's responses; 
  3764. X * 1xx for in progress, 2xx for success, 3xx for more information
  3765. X * needed, 4xx for temporary failure, and 5xx for permanent failure.  
  3766. X * Putting it all together, here's a sample conversation:
  3767. X *
  3768. X *   S: 200 hello\r\n
  3769. X *   E: user yourloginname\r\n
  3770. X *   S: 300 please send your password now\r\n
  3771. X *   E: pass yourcurrentpassword\r\n
  3772. X *   S: 200 My, that was tasty\r\n
  3773. X *   E: newpass yournewpassword\r\n
  3774. X *   S: 200 Happy to oblige\r\n
  3775. X *   E: quit\r\n
  3776. X *   S: 200 Bye-bye\r\n
  3777. X *   S: <closes connection>
  3778. X *   E: <closes connection>
  3779. X */
  3780. X
  3781. X#define SUCCESS 1
  3782. X#define FAILURE 0
  3783. X#define BUFSIZE 512
  3784. X#define MAXARGS 32
  3785. X#define SUPPRESS 1
  3786. X
  3787. X#include <sys/types.h>
  3788. X#include <sys/stat.h>
  3789. X#include <sys/ioctl.h>
  3790. X#include <sys/wait.h>
  3791. X#include <unistd.h>
  3792. X#include <fcntl.h>
  3793. X#include <syslog.h>
  3794. X#include <sgtty.h>
  3795. X#include <stdlib.h>
  3796. X#include <stdio.h>
  3797. X#include <ctype.h>
  3798. X#include <strings.h>
  3799. X#include <errno.h>
  3800. X#include <varargs.h>
  3801. X#include <pwd.h>
  3802. X
  3803. Xmain (argc, argv)
  3804. Xint argc;
  3805. Xchar *argv[];
  3806. X{
  3807. X     char line[BUFSIZE];
  3808. X     char user[BUFSIZE];
  3809. X     char oldpass[BUFSIZE];
  3810. X     char newpass[BUFSIZE];
  3811. X     char logFile[BUFSIZE];
  3812. X     char *slavedev;
  3813. X     struct passwd *pw, *getpwnam();
  3814. X     int c, master;
  3815. X     pid_t pid, wpid;
  3816. X     union wait wstat;
  3817. X     
  3818. X     chdir ("/etc" );
  3819. X     strcpy (user, "" );
  3820. X     strcpy (oldpass, "" );
  3821. X     strcpy (newpass, "" );
  3822. X     
  3823. X     if (openlog ("poppassd", LOG_PID) < 0)
  3824. X     {
  3825. X      WriteToClient ("500 Can't open syslog.");
  3826. X           exit (1);
  3827. X     }
  3828. X     
  3829. X     WriteToClient ("200 hello, who are you?");
  3830. X     ReadFromClient (line);
  3831. X     sscanf (line, "user %s", user) ;
  3832. X     if (strlen (user) == 0)
  3833. X     {
  3834. X      WriteToClient ("500 username required.");
  3835. X      exit(1);
  3836. X     }
  3837. X
  3838. X     WriteToClient ("200 your password please.");
  3839. X     ReadFromClient (line);
  3840. X     sscanf (line, "pass %s", oldpass) ;
  3841. X     if (strlen (oldpass) == 0)
  3842. X     {
  3843. X      WriteToClient ("500 password required.");
  3844. X      exit(1);
  3845. X     }
  3846. X     
  3847. X     if ((pw = getpwnam (user)) == NULL)
  3848. X     {
  3849. X      WriteToClient ("500 Unknown user, %s.", user);
  3850. X      exit(1);
  3851. X     }
  3852. X
  3853. X     if (chkPass (user, oldpass, pw) == FAILURE)
  3854. X     {
  3855. X      WriteToClient ("500 Authentication failure.");
  3856. X      exit(1);
  3857. X     }
  3858. X
  3859. X     WriteToClient ("200 your new password please.");
  3860. X     ReadFromClient (line);
  3861. X     sscanf (line, "newpass %s", newpass);
  3862. X     
  3863. X     /* new pass required */
  3864. X     if (strlen (newpass) == 0)
  3865. X     {
  3866. X      WriteToClient ("500 new password required.");
  3867. X      exit(1);
  3868. X     }
  3869. X     
  3870. X     /* new pass must be 6 char or longer */
  3871. X     if (strlen (newpass) < 6 )
  3872. X     {
  3873. X      WriteToClient ("500 New password too short");
  3874. X      exit(1);
  3875. X     }
  3876. X     
  3877. X     /* new pass must be different from old pass */
  3878. X     if (!strcmp (oldpass, newpass))
  3879. X     {
  3880. X      WriteToClient ("500 New password must be different.");
  3881. X      exit(1);
  3882. X     }
  3883. X
  3884. X     /* get pty to talk to password program */
  3885. X     if ((master = findpty (&slavedev)) < 0)
  3886. X     {
  3887. X      syslog (LOG_ERR, "can't find pty");
  3888. X      exit (1);
  3889. X     }
  3890. X     
  3891. X     /* fork child process to talk to password program */
  3892. X     if ((pid = fork()) < 0)     /* Error, can't fork */
  3893. X     {
  3894. X      syslog (LOG_ERR, "can't fork for passwd: %m");
  3895. X      WriteToClient ("500 Server error (can't fork passwd), get help!");
  3896. X      return (0);
  3897. X     }
  3898. X
  3899. X     if (pid)   /* Parent */
  3900. X     {
  3901. X      sleep (1);    /* Make sure child is ready.  Is this really needed? */
  3902. X      if (talktochild (master, user, oldpass, newpass) == FAILURE)
  3903. X      {
  3904. X           syslog (LOG_ERR, "failed attempt by %s", user);
  3905. X           WriteToClient ("500 Unable to change password." );
  3906. X           exit(1);
  3907. X      }
  3908. X
  3909. X      if ((wpid = waitpid (pid, &wstat, 0)) < 0)
  3910. X      {
  3911. X           syslog (LOG_ERR, "wait for /bin/passwd child failed: %m");
  3912. X           WriteToClient ("500 Server error (wait failed), get help!");
  3913. X           exit (1);
  3914. X      }
  3915. X
  3916. X      if (pid != wpid)
  3917. X      {
  3918. X           syslog (LOG_ERR, "wrong child (/bin/passwd waited for!");
  3919. X           WriteToClient ("500 Server error (wrong child), get help!");
  3920. X           return (0);
  3921. X      }
  3922. X
  3923. X      if (WIFEXITED (wstat) == 0)
  3924. X      {
  3925. X           syslog (LOG_ERR, "child (/bin/passwd) killed?");
  3926. X           WriteToClient ("500 Server error (funny wstat), get help!");
  3927. X           exit (1);
  3928. X      }
  3929. X
  3930. X      if (WEXITSTATUS (wstat) != 0)
  3931. X      {
  3932. X           syslog (LOG_ERR, "child (/bin/passwd) exited abnormally");
  3933. X           WriteToClient ("500 Server error (abnormal exit), get help!");
  3934. X           exit (1);
  3935. X      }
  3936. X
  3937. X      if (hashpass() == 0)
  3938. X           exit (1);
  3939. X
  3940. X      syslog (LOG_ERR, "password changed for %s", user);
  3941. X      WriteToClient ("200 Password changed, thank-you.");
  3942. X      exit (0);
  3943. X     }
  3944. X     else      /* Child */
  3945. X     {
  3946. X      /*
  3947. X       * Become the user trying who's password is being changed.  We're
  3948. X       * about to exec /bin/passwd with is setuid root anyway, but this
  3949. X       * way it looks to the child completely like it's being run by
  3950. X       * the normal user, which makes it do its own password verification
  3951. X       * before doing any thing.  In theory, we've already verified the
  3952. X       * password, but this extra level of checking doesn't hurt.  Besides,
  3953. X       * the way I do it here, if somebody manages to change somebody
  3954. X       * else's password, you can complain to your vendor about security
  3955. X       * holes, not to me!
  3956. X       */
  3957. X      setuid (pw->pw_uid);
  3958. X      setgid (pw->pw_gid);
  3959. X      dochild (slavedev, user);
  3960. X     }
  3961. X}
  3962. X
  3963. Xdochild (slavedev, user)
  3964. Xchar *slavedev, *user;
  3965. X{
  3966. X     int fd, fdmax, slave;
  3967. X     struct sgttyb sgbuf;
  3968. X
  3969. X     /*
  3970. X      * Get rid of control terminal and
  3971. X      * close all open file descriptors.
  3972. X      */
  3973. X     fd = open ("/dev/tty", O_RDWR, 0);
  3974. X     ioctl (fd, TIOCNOTTY, 0);
  3975. X      
  3976. X     fdmax = sysconf (_SC_OPEN_MAX);
  3977. X     for (fd = 0; fd < fdmax; fd++)
  3978. X      close (fd);
  3979. X
  3980. X     /*
  3981. X      * Open slave side of pty (which now becomes the control terminal).
  3982. X      * Set appropriate tty modes and make sure stdin, stdout, and stderr
  3983. X      * are all connected to it.
  3984. X      */
  3985. X     if ((slave = open (slavedev, O_RDWR)) < 0)
  3986. X     {
  3987. X      syslog (LOG_ERR, "Can't open slave pty %s: %m", slavedev);
  3988. X      return (0);
  3989. X     }
  3990. X     
  3991. X     ioctl (slave, TIOCGETP, &sgbuf);
  3992. X     sgbuf.sg_flags = ANYP;
  3993. X     ioctl (slave, TIOCSETP, &sgbuf);
  3994. X
  3995. X     dup2 (slave, 0);
  3996. X     dup2 (slave, 1);
  3997. X     dup2 (slave, 2);
  3998. X
  3999. X     /*
  4000. X      * This is probably just paranoia; if all fds are closed, slave
  4001. X      * should be fd 0.  In that case, the dup2 (slave, 0) above is 
  4002. X      * also just being paranoid.
  4003. X      */
  4004. X     if (slave > 2)
  4005. X      (void) close(slave);
  4006. X
  4007. X     /*
  4008. X      * Execute the "real" password program, which should now think
  4009. X      * it is talking to a normal user on a normal tty port.
  4010. X      */
  4011. X     execl ("/bin/passwd", "passwd", user, (char *) 0);
  4012. X
  4013. X     /*
  4014. X      * We only reach here if execl fails!  It's not 100% clear what
  4015. X      * to do at this point.  We can no longer talk to the client since
  4016. X      * we no longer have the client socket open.  Just log a syslog
  4017. X      * message (and hope its gets logged, since it's not clear what
  4018. X      * evil things closing the syslog fd has done!) and count on the
  4019. X      * parent process to realize we've died.
  4020. X      */
  4021. X     openlog ("poppassd (child)", LOG_PID);
  4022. X     syslog (LOG_ERR, "can't execl /bin/passwd: %m");
  4023. X     exit (1);
  4024. X}
  4025. X
  4026. X/*
  4027. X * findpty()
  4028. X *
  4029. X * Finds the first available pseudo-terminal master/slave pair.  The master
  4030. X * side is opened and a fd returned as the function value.  A pointer to the
  4031. X * name of the slave side (i.e. "/dev/ttyp0") is returned in the argument,
  4032. X * which should be a char**.  The name itself is stored in a static buffer.
  4033. X *
  4034. X * A negative value is returned on any sort of error.
  4035. X */
  4036. Xfindpty (slave)
  4037. Xchar **slave;
  4038. X{
  4039. X     int c, i, master;
  4040. X     static char *line;
  4041. X     struct stat statbuf;
  4042. X     
  4043. X     for (c = 'p'; c <= 's'; c++)
  4044. X     {
  4045. X      line = "/dev/ptyXX";
  4046. X      line[sizeof("/dev/pty")-1] = c;
  4047. X      line[sizeof("/dev/ptyp")-1] = '0';
  4048. X      if (stat (line, &statbuf) < 0)
  4049. X           break;
  4050. X      
  4051. X      for (i = 0; i < 16; i++)
  4052. X      {
  4053. X           line[sizeof("/dev/ptyp")-1] = "0123456789abcdef"[i];
  4054. X           if ((master = open(line, O_RDWR)) >= 0)
  4055. X            goto found_pty;
  4056. X      }
  4057. X     }
  4058. X
  4059. X     syslog(LOG_ERR, "All network ports in use");
  4060. X     return (-1);
  4061. X
  4062. X   found_pty:
  4063. X     line[sizeof("/dev/")-1] = 't';        /* "/dev/ptyp0" --> "/dev/ttyp0" */
  4064. X     *slave = line;
  4065. X     return (master);
  4066. X}
  4067. X
  4068. X/*
  4069. X * writestring()
  4070. X *
  4071. X * Write a string in a single write() system call.
  4072. X */
  4073. Xwritestring (fd, s)
  4074. Xchar *s;
  4075. X{
  4076. X     int l;
  4077. X
  4078. X     l = strlen (s);
  4079. X     write (fd, s, l);
  4080. X}
  4081. X
  4082. X/*
  4083. X * talktochild()
  4084. X *
  4085. X * Handles the conversation between the parent and child (password program)
  4086. X * processes.  This is where you want to customize the conversation script.
  4087. X *
  4088. X * Returns SUCCESS is the conversation is completed without any problems,
  4089. X * FAILURE if any errors are encountered (in which case, it can be assumed
  4090. X * that the password wasn't changed).
  4091. X */
  4092. Xtalktochild (master, user, oldpass, newpass)
  4093. Xint master;
  4094. Xchar *user, *oldpass, *newpass;
  4095. X{
  4096. X     int n;
  4097. X     char buf[500];
  4098. X
  4099. X     sprintf (buf, "Changing password for %s\n", user);
  4100. X     if (!expect (master, buf))
  4101. X      return (FAILURE);
  4102. X
  4103. X     if (!expect (master, "Old password: "))
  4104. X      return (FAILURE);
  4105. X     
  4106. X     sprintf (buf, "%s\n", oldpass);
  4107. X     writestring (master, buf);
  4108. X
  4109. X     if (!expect (master, "\n") || !expect (master, "Enter new password: "))
  4110. X      return (FAILURE);
  4111. X
  4112. X     sprintf (buf, "%s\n", newpass);
  4113. X     writestring (master, buf);
  4114. X
  4115. X     if (!expect (master, "\n") || !expect (master, "Verify: "))
  4116. X      return (FAILURE);
  4117. X
  4118. X     writestring (master, buf);
  4119. X     if (!expect (master, "\n") || !expect (master, ""))
  4120. X      return (FAILURE);
  4121. X
  4122. X     return (SUCCESS);
  4123. X}
  4124. X
  4125. X/*
  4126. X * expect ()
  4127. X *
  4128. X * Read the next line and check to make sure it is an exact match for
  4129. X * the string expected, including newlines.  If the expected string is
  4130. X * empty, it's considered to match either EOF, or getting an EWOULDBLOCK
  4131. X * error, which would typically occur if the child has already exited.
  4132. X *
  4133. X * A syslog error message is generated and expect returns 0 on any error
  4134. X * or mismatch.  If the expected string is found, expect() returns 1.
  4135. X */
  4136. Xexpect (fd, s)
  4137. Xint fd;
  4138. Xchar *s;
  4139. X{
  4140. X     int n;
  4141. X     char buf[1000];
  4142. X     extern int errno;
  4143. X
  4144. X     if ((n = read (fd, buf, 999)) < 0)
  4145. X     {
  4146. X      if (errno == EWOULDBLOCK && *s == NULL)
  4147. X           return (1);
  4148. X      
  4149. X      syslog (LOG_ERR, "read error from child: %m");
  4150. X      return (0);
  4151. X     }
  4152. X
  4153. X     buf[n] = 0;
  4154. X     if (strcmp (s, buf) != 0)
  4155. X     {
  4156. X      syslog (LOG_ERR, "wrong response from child --");
  4157. X      syslog (LOG_ERR, "expected %s", s);
  4158. X      syslog (LOG_ERR, "got %s", buf);
  4159. X      return (0);
  4160. X     }
  4161. X     
  4162. X     return (1);
  4163. X}
  4164. X
  4165. XWriteToClient (va_alist)
  4166. Xva_dcl
  4167. X{
  4168. X    va_list ap;
  4169. X    char *fmt;      
  4170. X    char *args[MAXARGS];
  4171. X    int argno = 0;
  4172. X    char string[BUFSIZE];
  4173. X    
  4174. X    va_start (ap);
  4175. X    fmt = va_arg (ap, char *);
  4176. X    while ((args[argno++] = va_arg(ap, char *)) != (char *)0)
  4177. X            ;
  4178. X
  4179. X    vfprintf (stdout, fmt, args);
  4180. X    fputs ("\r\n", stdout );
  4181. X    fflush (stdout);
  4182. X
  4183. X    vsprintf (string, fmt, args);
  4184. X
  4185. X    va_end (ap);
  4186. X}
  4187. X
  4188. XReadFromClient (line)
  4189. Xchar *line;
  4190. X{
  4191. X    char *sp;
  4192. X    int i;
  4193. X
  4194. X    strcpy (line, "");
  4195. X    fgets (line, BUFSIZE, stdin);
  4196. X    if ((sp = strchr(line, '\n')) != NULL) *sp = '\0'; 
  4197. X    if ((sp = strchr(line, '\r')) != NULL) *sp = '\0'; 
  4198. X}
  4199. X
  4200. Xint chkPass (user, pass, pw)
  4201. Xchar *user;
  4202. Xchar *pass;
  4203. Xstruct passwd *pw;
  4204. X{
  4205. X     /*  Compare the supplied password with the password file entry */
  4206. X     if (strcmp (crypt (pass, pw->pw_passwd), pw->pw_passwd) != 0)
  4207. X      return (FAILURE);
  4208. X     else 
  4209. X      return (SUCCESS);
  4210. X}
  4211. X
  4212. X/*
  4213. X * hashpass()
  4214. X *
  4215. X * Execute mkpasswd to build the hashed (dbx) passwd files.
  4216. X */
  4217. Xhashpass()
  4218. X{
  4219. X     pid_t pid, wpid;
  4220. X     union wait wstat;
  4221. X     int fd;
  4222. X
  4223. X     /* fork child process to talk to run mkpasswd */
  4224. X     if ((pid = fork()) < 0)     /* Error, can't fork */
  4225. X     {
  4226. X      syslog (LOG_ERR, "can't fork for mkpassd: %m");
  4227. X      WriteToClient ("500 Server error (can't fork mkpasswd), get help!");
  4228. X      return (0);
  4229. X     }
  4230. X
  4231. X     if (pid)   /* Parent */
  4232. X     {
  4233. X      if ((wpid = waitpid (pid, &wstat, 0)) < 0)
  4234. X      {
  4235. X           syslog (LOG_ERR, "wait for mkpasswd child failed: %m");
  4236. X           WriteToClient ("500 Server error (wait failed), get help!");
  4237. X           return (0);
  4238. X      }
  4239. X
  4240. X      if (pid != wpid)
  4241. X      {
  4242. X           syslog (LOG_ERR, "wrong child waited for in hashpass()!");
  4243. X           WriteToClient ("500 Server error (wrong child), get help!");
  4244. X           return (0);
  4245. X      }
  4246. X
  4247. X      if (WIFEXITED (wstat) == 0)
  4248. X      {
  4249. X           syslog (LOG_ERR, "child (mkpasswd) killed?");
  4250. X           WriteToClient ("500 Server error (funny wstat), get help!");
  4251. X           return (0);
  4252. X      }
  4253. X
  4254. X      if (WEXITSTATUS (wstat) != 0)
  4255. X      {
  4256. X           syslog (LOG_ERR, "child (mkpasswd) exited abnormally");
  4257. X           WriteToClient ("500 Server error (abnormal exit), get help!");
  4258. X           return (0);
  4259. X      }
  4260. X
  4261. X      return (1);    /* mkpasswd executed normally */
  4262. X     }
  4263. X     else      /* Child */
  4264. X     {
  4265. X      /*
  4266. X       * Making stdout and stderr /dev/null keeps mkpasswd messages (such
  4267. X       * as the one that says "669 password entries, maximum length 125")
  4268. X       * from being visible to the client.  If you are doing debugging,
  4269. X       * just change /dev/null to /tmp/mkpasswd.std{out,err}, or whatever.
  4270. X       */
  4271. X      close (1);
  4272. X      fd = open ("/dev/null", O_RDWR, 0);
  4273. X      if (fd != 1)
  4274. X      {
  4275. X           dup2 (fd, 1);
  4276. X           close (fd);
  4277. X      }
  4278. X      close (2);
  4279. X      fd = open ("/dev/null", O_RDWR, 0);
  4280. X      if (fd != 2)
  4281. X      {
  4282. X           dup2 (fd, 2);
  4283. X           close (fd);
  4284. X      }
  4285. X
  4286. X      execl ("/etc/mkpasswd", "mkpasswd", "/etc/passwd", (char *) 0);
  4287. X
  4288. X      /*
  4289. X       * We only reach here if execl fails!
  4290. X       */
  4291. X      syslog (LOG_ERR, "can't execl /etc/mkpasswd: %m");
  4292. X      WriteToClient ("500 Server error (can't exec mkpasswd), get help!");
  4293. X      exit (1);
  4294. X     }
  4295. X}
  4296. SHAR_EOF
  4297. $TOUCH -am 0211152293 poppassd.c &&
  4298. chmod 0644 poppassd.c ||
  4299. echo "restore of poppassd.c failed"
  4300. set `wc -c poppassd.c`;Wc_c=$1
  4301. if test "$Wc_c" != "15723"; then
  4302.     echo original size 15723, current size $Wc_c
  4303. fi
  4304. # ============= Makefile ==============
  4305. echo "x - extracting Makefile (Text)"
  4306. sed 's/^X//' << 'SHAR_EOF' > Makefile &&
  4307. XBINDIR = /usr/etc
  4308. XLIBDIR = 
  4309. XCFLAGS = -g
  4310. XLFLAGS = -g
  4311. XCCM = cc -Em
  4312. X
  4313. XOBJECTS = poppassd.o
  4314. XLIBS =
  4315. X
  4316. Xpoppassd: $(OBJECTS)
  4317. X    cc -o poppassd $(LFLAGS) $(OBJECTS) $(LIBS)
  4318. X
  4319. Xinstall: poppassd
  4320. X    install -g bin -o root -m 500 poppassd $(BINDIR)
  4321. X
  4322. Xclean:
  4323. X    rm -f *.o *~* core Makefile.new Makefile.bak poppassd
  4324. X
  4325. Xdepend:
  4326. X    cp Makefile Makefile.old
  4327. X    sed -n -e "/^BINDIR =/s|=.*|= $(BINDIR)|" \
  4328. X        -e "/^LIBDIR =/s|=.*|= $(LIBDIR)|" \
  4329. X        -e "/^CFLAGS =/s|=.*|= $(CFLAGS)|" \
  4330. X        -e "/^LFLAGS =/s|=.*|= $(LFLAGS)|" \
  4331. X        -e "/^CCM =/s|=.*|= $(CCM)|" \
  4332. X        -e "1,/^# DO NOT DELETE THIS LINE/p" \
  4333. X        Makefile > Makefile.new
  4334. X    for i in $(OBJECTS); do \
  4335. X        echo; \
  4336. X        cfile=`basename $$i .o`.c; \
  4337. X        $(CCM) $$cfile; \
  4338. X        echo '  cc -c' '$$(CFLAGS)' "$$cfile"; \
  4339. X    done >> Makefile.new
  4340. X    mv Makefile.new Makefile
  4341. X
  4342. X# DO NOT DELETE THIS LINE -- make depend uses it
  4343. X
  4344. Xpoppassd.o: poppassd.c
  4345. Xpoppassd.o: /usr/include/sys/types.h
  4346. Xpoppassd.o: /usr/include/ansi_compat.h
  4347. Xpoppassd.o: /usr/include/sys/stat.h
  4348. Xpoppassd.o: /usr/include/ansi_compat.h
  4349. Xpoppassd.o: /usr/include/sys/ioctl.h
  4350. Xpoppassd.o: /usr/include/ansi_compat.h
  4351. Xpoppassd.o: /usr/include/sys/ttychars.h
  4352. Xpoppassd.o: /usr/include/sys/ttydev.h
  4353. Xpoppassd.o: /usr/include/sys/ttyio.h
  4354. Xpoppassd.o: /usr/include/sgtty.h
  4355. Xpoppassd.o: /usr/include/ansi_compat.h
  4356. Xpoppassd.o: /usr/include/unistd.h
  4357. Xpoppassd.o: /usr/include/fcntl.h
  4358. Xpoppassd.o: /usr/include/sys/file.h
  4359. Xpoppassd.o: /usr/include/ansi_compat.h
  4360. Xpoppassd.o: /usr/include/sys/types.h
  4361. Xpoppassd.o: /usr/include/syslog.h
  4362. Xpoppassd.o: /usr/include/sgtty.h
  4363. Xpoppassd.o: /usr/include/stdlib.h
  4364. Xpoppassd.o: /usr/include/ansi_compat.h
  4365. Xpoppassd.o: /usr/include/stdio.h
  4366. Xpoppassd.o: /usr/include/ansi_compat.h
  4367. Xpoppassd.o: /usr/include/ctype.h
  4368. Xpoppassd.o: /usr/include/strings.h
  4369. Xpoppassd.o: /usr/include/errno.h
  4370. Xpoppassd.o: /usr/include/varargs.h
  4371. Xpoppassd.o: /usr/include/ansi_compat.h
  4372. Xpoppassd.o: /usr/include/stamp.h
  4373. Xpoppassd.o: /usr/include/ansi_compat.h
  4374. Xpoppassd.o: /usr/include/pwd.h
  4375. Xpoppassd.o: /usr/include/ansi_compat.h
  4376. Xpoppassd.o: /usr/include/sys/types.h
  4377. X    cc -c $(CFLAGS) poppassd.c
  4378. SHAR_EOF
  4379. $TOUCH -am 0211152393 Makefile &&
  4380. chmod 0644 Makefile ||
  4381. echo "restore of Makefile failed"
  4382. set `wc -c Makefile`;Wc_c=$1
  4383. if test "$Wc_c" != "2030"; then
  4384.     echo original size 2030, current size $Wc_c
  4385. fi
  4386. exit 0
  4387. </text>
  4388.     </content>
  4389.     <name></name>
  4390.     <script></script>
  4391. </card>
  4392.  
  4393.  
  4394. card_14953.xml
  4395. <?xml version="1.0" encoding="utf-8" ?>
  4396. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  4397. <card>
  4398.     <id>14953</id>
  4399.     <filler1>0</filler1>
  4400.     <cantDelete> <false /> </cantDelete>
  4401.     <showPict> <true /> </showPict>
  4402.     <dontSearch> <false /> </dontSearch>
  4403.     <owner>2620</owner>
  4404.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  4405.     <content>
  4406.         <layer>background</layer>
  4407.         <id>2</id>
  4408.         <text>The mail transport system around here puts a lot of stupid junk in mail headers.  Can I make Eudora filter it out?</text>
  4409.     </content>
  4410.     <content>
  4411.         <layer>background</layer>
  4412.         <id>3</id>
  4413.         <text>Sure.  Use ResEdit to copy STR# resource id 3200 from Eudora into your Eudora Settings file, and then add strings to the resource.  Each string is another header to ignore.  Eudora matches on initial substrings only, and is case-insensitive.  So if, for example, you wanted to get rid of every header beginning with "X-", you could just put "x-" into one of the strings in STR# resource id 3200.</text>
  4414.     </content>
  4415.     <name></name>
  4416.     <script></script>
  4417. </card>
  4418.  
  4419.  
  4420. card_15645.xml
  4421. <?xml version="1.0" encoding="utf-8" ?>
  4422. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  4423. <card>
  4424.     <id>15645</id>
  4425.     <filler1>0</filler1>
  4426.     <cantDelete> <false /> </cantDelete>
  4427.     <showPict> <true /> </showPict>
  4428.     <dontSearch> <false /> </dontSearch>
  4429.     <owner>2620</owner>
  4430.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  4431.     <content>
  4432.         <layer>background</layer>
  4433.         <id>2</id>
  4434.         <text>I don't seem to get as much feedback from Communications Tools when I use Eudora as I do from other programs.  What gives?</text>
  4435.     </content>
  4436.     <content>
  4437.         <layer>background</layer>
  4438.         <id>3</id>
  4439.         <text>If you set the "Auto-OK" switch, Eudora must inhibit all alerts and windows from tools, because Eudora has no effective way to dismiss them.  The Communications Toolbox does not provide a way to specify that you want things like the modem monitor window and progress windows, but not alerts.
  4440.  
  4441. So, you have to choose; pretty dialogs from CTB tools, or having Eudora automatically dismiss alerts.  Can't have both.
  4442.  
  4443.  
  4444. </text>
  4445.     </content>
  4446.     <name></name>
  4447.     <script></script>
  4448. </card>
  4449.  
  4450.  
  4451. card_16136.xml
  4452. <?xml version="1.0" encoding="utf-8" ?>
  4453. <!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
  4454. <card>
  4455.     <id>16136</id>
  4456.     <filler1>0</filler1>
  4457.     <cantDelete> <false /> </cantDelete>
  4458.     <showPict> <true /> </showPict>
  4459.     <dontSearch> <false /> </dontSearch>
  4460.     <owner>2620</owner>
  4461.     <link rel="stylesheet" type="text/css" href="stylesheet_12882.css" />
  4462.     <content>
  4463.         <layer>background</layer>
  4464.         <id>2</id>
  4465.         <text>What the heck is "X-Sender" and "(Unverified)" and how can I make them go away?</text>
  4466.     </content>
  4467.     <content>
  4468.         <layer>background</layer>
  4469.         <id>3</id>
  4470.         <text><span class="style5">   You don't need a password to send mail on the Internet.  Therefore, anyone with a little knowledge can forge mail; send mail and make it look like it came from someone else.  However, certain people are rather clue-challenged about this problem, and insist that it is a "Eudora bug" that Eudora does not ask for a password when sending mail.  So I have thrown them the "X-Sender" header as a sop.
  4471.     X-Sender: shows up in two situations.  First, if you set your Return Address to something other than your POP Account, Eudora will add an X-Sender: header with your POP Account in it, so that people know what account you normally use.
  4472.     Second, if you have not checked your mail since you started Eudora, Eudora does not know if you know the password for the account or not.  In this case, if you send mail, Eudora adds an X-Sender: field with your POP Account and "(Unverified)".
  4473.     In summary, X-Sender provides some tiny protection from stupid mail forgers.  Smart ones will not have a problem forging mail, so this is really no protection at all, but so it goes.  Even I can't always fight City Hall.
  4474.     You can't get rid of it, sorry.</span></text>
  4475.     </content>
  4476.     <name></name>
  4477.     <script></script>
  4478. </card>
  4479.  
  4480.  
  4481.